【发布时间】:2015-04-15 17:04:24
【问题描述】:
我在数据库(Postgres)中插入操作,然后立即获取最后一个序列号。如果 10 个人做同样的事情,他们能打破我的数据库操作顺序吗?
INSERT INTO table VALUES (DEFAULT,...);
SELECT currval(pg_get_serial_sequence('table','column')) as inserted_id;
恐怕会发生这样的情况:
INSERT INTO table VALUES (DEFAULT,...);
Meanwhile, another user was doing insertions and I end up getting the wrong id;
SELECT currval(pg_get_serial_sequence('table','column')) as inserted_id;
【问题讨论】:
-
不,最后一个插入 ID 是每个客户端的 - 每个用户总是会得到最后一个插入查询的结果他们执行的。
标签: sql postgresql concurrency auto-increment sql-insert