我正在使用postgresql数据库。以前的表由我的老年人创建,他们没有使用序列概念,他们手动添加数据。现在我需要用我的java应用程序插入数据。因为我需要最后插入ID。 我无权添加序列。
请有人帮助我。
提前谢谢......
答案 0 :(得分:2)
理想情况下,您需要获得创建所需序列的许可。
如果它不是某种官僚理由的选择,您可能会设法使用咨询锁来解决并发问题。伪代码:
loop
select id as last_id, pg_try_advisory_lock('yourtable'::regclass, id) as locked
from yourtable
order by id desc limit 1
if not locked then sleep .01 else exit end if
end loop
new_id = last_id + 1
insert...
select pg_advisory_unlock('yourtable'::regclass, last_id)