select last id为多个请求返回了相同的结果

时间:2016-08-12 12:53:57

标签: sql postgresql

我尝试将数据插入到2个表中,其中table2没有主键,但只有外键:

insert into table1 ....;
insert into table2 (a, column2, c) values(1, (select id from table1 order by inserted_at desc limit 1), 33);

insert into table1 ....;
insert into table2 (a, column2, c) values(1, (select id from table1 order by inserted_at desc limit 1), 33);

insert into table1 ....;
insert into table2 (a, column2, c) values(1, (select id from table1 order by inserted_at desc limit 1), 33);

我在所有3个请求的table2 column2中都使用相同的ID。为什么以及如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

因为您在一次交易中运行3次插入

你应该添加每个befere插入start transaction; 并在每次插入commit;

之后

答案 1 :(得分:0)

考虑这样做:

{{1}}