在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($1, $2); PREPARE
ERROR: syntax error at or near "CREATE"
LINE 2: CREATE TABLE foo (id INT, name VARCHAR(80));
^
ERROR: there is no parameter $1
LINE 1: INSERT INTO foo VALUES($1, $2);
^
答案 0 :(得分:0)
在准备好的语句中只能使用DML命令。 The manual:
任何
SELECT
,INSERT
,UPDATE
,DELETE
或VALUES
语句。
不允许使用DDL命令CREATE TABLE
。
只有一个语句。第二个示例中的INSERT
不是准备好的语句的一部分,而是第二个独立的语句。