如何使用表中的特定max(id)更改PostgreSQL中的Sequence?

时间:2017-04-25 09:06:04

标签: sql postgresql

我需要正确使用以下SQL脚本语法。在postgres中,你不能真正地链接"改变序列"用"选择max(id)"。那么以PostgreSQL接受它的方式编写脚本的正确方法是什么?

以下是脚本,以便您了解我需要的内容:

 alter SEQUENCE notification_settings_seq START with (select max(id) from game_user)

1 个答案:

答案 0 :(得分:7)

这将使用新值重新启动序列:

do $$
declare maxid int;
begin
    select max(id) from game_user into maxid;
    execute 'alter SEQUENCE seq_name RESTART with '|| maxid;   
end;
$$ language plpgsql