Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插入多列,并加上“;加上;在postgresql中_Sql_Postgresql_Sql Insert_Common Table Expression - Fatal编程技术网

插入多列,并加上“;加上;在postgresql中

插入多列,并加上“;加上;在postgresql中,sql,postgresql,sql-insert,common-table-expression,Sql,Postgresql,Sql Insert,Common Table Expression,我的问题是这样的 WITH p AS ( select idA from TableA ) insert into TableB(idB,idA,city,data) select sp_get_id('TableB'),p.idA from p,'TO',now() 注意:sp\u get\u id('TableB')是生成id的存储过程。我执行上面的查询,结果是错误的。您尝试插入的术语是简单的标量。您可以从p查询它们: WITH p AS (SELECT idA FRO

我的问题是这样的

WITH p AS (  select idA from TableA   )  
insert into TableB(idB,idA,city,data) 
   select  sp_get_id('TableB'),p.idA from p,'TO',now()

注意:
sp\u get\u id('TableB')
是生成id的存储过程。我执行上面的查询,结果是错误的。

您尝试插入的术语是简单的标量。您可以从
p
查询它们:

WITH p AS (SELECT idA FROM TableA)  
INSERT INTO TableB (idB, idA, city, data) 
SELECT sp_get_id('TableB'), idA, 'TO', NOW()
FROM   p
但是,坦率地说,我认为在这里使用CTE只会使事情复杂化(假设问题本身不是实际问题的简化):


“这是错误的”。你有错误吗?你能分享一下吗?还有,
,'TO',now()
应该做什么?如果您能更好地解释一下,总体来说,您在这里试图做什么,以及相关的代码,如。。。你的程序在做什么,(输入和输出参数),或者为什么是CTE?谢谢你JNeil,现在,Mureinik帮助我解决了这个问题
INSERT INTO TableB (idB, idA, city, data) 
SELECT sp_get_id('TableB'), idA, 'TO', NOW()
FROM   TableA