插入后,该语句可与配合使用Oracle。
INSERT INTO table_name (col1, col2) VALUES (val1, val2) RETURNING col1 INTO :var ;
Run Code Online (Sandbox Code Playgroud)
我们可以将变量绑定到:var并执行该语句。
但是,当同一查询在Postgres数据库中运行时,会出现以下错误。
错误:“ INTO”处或附近的语法错误。
这种行为的原因是什么?
我试图在PL / pgSQL块中运行查询,它运行完美。
DO $$
DECLARE var integer;
BEGIN
INSERT INTO "table_name "(
"col1, "col2")
VALUES (val1, val2)
RETURNING "col1" INTO var;
END $$
Run Code Online (Sandbox Code Playgroud)
但是当我们连接到Postgres数据库时,上面的查询不能在没有PL / pgSQL块的情况下直接在C ++代码内部使用。我正在使用PostgreSQL 9.5.4。由于我们支持数据库不可知的软件应用程序,因此我们需要澄清这种行为。
我希望两个数据库都以相同的方式支持RETURNING .. INTO子句。