https://www.postgresql.org/docs/current/static/libpq-exec.html
在PQprepare
旁边:
该函数从中创建名为 stmtName 的预准备语句 查询字符串,必须包含单个SQL命令。 stmtName 可以 ""创建一个未命名的语句,在这种情况下任何预先存在的语句 未命名的语句会自动替换;否则是一个错误 如果语句名称已在当前会话中定义。
并进一步:
也可以创建用于 PQexecPrepared 的预备语句 执行SQL
PREPARE
语句。
现在https://www.postgresql.org/docs/current/static/sql-prepare.html
PREPARE name [(data_type [,...])] AS语句
和
name为此特定预准备语句指定的任意名称。它 必须在单个会话中是唯一的,并随后用于 执行或取消分配先前准备好的声明。
问题:
我是否可以使用SQL语句PREPARE
创建未命名的预准备语句?默默地可以重复使用以及所有其他的......
t=# prepare ""(int) as select $1,now();
ERROR: zero-length delimited identifier at or near """"
LINE 1: prepare ""(int) as select $1,now();
并省略名称:
ERROR: syntax error at or near "as"
或者我错过了一些非常明显的东西?..
答案 0 :(得分:1)
没有。未命名的预准备语句仅在有线协议上受支持。
它们主要用于带有绑定参数的一次性语句和批处理。