我有2张桌子: 1 GT;具有id和name列的批处理 2 - ;具有id,batch_id和名称列的Trans
基本上对于给定的批次,可能有多个Trans记录。
我有一个Batch记录和2个Trans记录,并希望使用SQL Batch Update将它们插入到两个表中,这些记录应使用外键(batch_id)进行绑定。
1 b1
1 1 T1
我的问题是如何创建插入查询,这些查询在这两个表中执行插入作为一个批处理操作的一部分。
答案 0 :(得分:2)
从Postgre 9.1开始,你可以这样做:
with rows as (
INSERT INTO Batch (name) VALUES ('b1') RETURNING id
)
INSERT INTO Trans(batch_id, name)
SELECT id, 'T1'
FROM rows
INSERT INTO Trans(batch_id, name)
SELECT id, 'T2'
FROM rows