我的查询是这样的
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的存储过程。我执行上面的查询,它是错误的。
最佳答案
您尝试插入的项是简单的标量。您可以从 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
关于sql - 在postgresql中插入多列 "with",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47757657/