为什么创建以下准备好的语句会失败?
Why does creation of the following prepared statements fail?
在 psql 和 postgresql 中,为什么创建以下准备好的语句会失败?谢谢
mytestdb=# PREPARE fooplan (INT, VARCHAR(80)) AS
CREATE TABLE foo (id INT, name VARCHAR(80)); PREPARE
ERROR: syntax error at or near "CREATE"
LINE 2: CREATE TABLE foo (id INT, name VARCHAR(80));
和
mytestdb=# PREPARE fooplan (INT, VARCHAR(80)) AS
CREATE TABLE foo (id INT, name VARCHAR(80)); INSERT INTO foo VALUES(, ); PREPARE
ERROR: syntax error at or near "CREATE"
LINE 2: CREATE TABLE foo (id INT, name VARCHAR(80));
^
ERROR: there is no parameter
LINE 1: INSERT INTO foo VALUES(, );
^
在准备好的语句中只能使用 DML 命令。 The manual:
Any SELECT
, INSERT
, UPDATE
, DELETE
, or VALUES
statement.
不允许 DDL 命令 CREATE TABLE
。
并且只有一个语句。第二个示例中的 INSERT
不是准备语句的一部分,而是第二个单独的独立语句。
在 psql 和 postgresql 中,为什么创建以下准备好的语句会失败?谢谢
mytestdb=# PREPARE fooplan (INT, VARCHAR(80)) AS
CREATE TABLE foo (id INT, name VARCHAR(80)); PREPARE
ERROR: syntax error at or near "CREATE"
LINE 2: CREATE TABLE foo (id INT, name VARCHAR(80));
和
mytestdb=# PREPARE fooplan (INT, VARCHAR(80)) AS
CREATE TABLE foo (id INT, name VARCHAR(80)); INSERT INTO foo VALUES(, ); PREPARE
ERROR: syntax error at or near "CREATE"
LINE 2: CREATE TABLE foo (id INT, name VARCHAR(80));
^
ERROR: there is no parameter
LINE 1: INSERT INTO foo VALUES(, );
^
在准备好的语句中只能使用 DML 命令。 The manual:
Any
SELECT
,INSERT
,UPDATE
,DELETE
, orVALUES
statement.
不允许 DDL 命令 CREATE TABLE
。
并且只有一个语句。第二个示例中的 INSERT
不是准备语句的一部分,而是第二个单独的独立语句。