使用"和#34;插入多列的多列在postgresql中

时间:2017-12-11 16:54:24

标签: 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_get_id('TableB')是生成id的存储过程。我执行上面的查询,这是错误的。

1 个答案:

答案 0 :(得分:1)

您尝试插入的术语是简单的标量。您可以从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只会使事情变得复杂(假设问题本身并不是对实际问题的简化):

INSERT INTO TableB (idB, idA, city, data) 
SELECT sp_get_id('TableB'), idA, 'TO', NOW()
FROM   TableA