执行语句
语句的形式如下:
EXECUTE <identifier> "(" <parameter-value> { , ... <parameter-value> } ")"
执行语句会执行由 prepare 语句先前定义并预编译的 SQL 查询。这通过省去每次执行该语句时的语句编译步骤来节省处理器时间。
<标识符>指定了预编译语句的名称。在查询中,参数会在预编译查询语句中出现“?”占位符的位置进行替换。除非在预编译语句中明确进行了类型转换,否则所有参数都必须为字符串类型。例如,以下预编译语句要求为参数 x 提供一个整数值:
prepare lookup as select * from t where x=?::integer;
execute lookup(1);
以下示例语句演示了如何定义和执行预编译语句:
create table t(x integer primary key, y integer);
prepare lookup as select * from t where x=?::integer;
prepare lookup2 as select * from t where x=?::integer and y=?::integer;
insert into t values (1,10);
execute lookup(1);
explain execute lookup(1);
execute lookup2(1,10);
explain execute lookup2(1,10);
prepare selfjoin as select * from t as t1 left join t as t2 on t1.y=t2.y;
execute selfjoin();
explain execute selfjoin();
execute selfjoin();