重新启动,以便 nextval 是下一个未使用的 id
我有一个脚本,可以将表数据从一个数据库复制到另一个数据库,但是 ID 列由序列支持,因此当将新记录插入目标表时,nextval(seq)
将返回错误的值。
我需要更新序列,以便它从下一个可用 ID 开始。
我想做类似的事情:
ALTER SEQUENCE seq_id RESTART WITH
(SELECT MAX(id) FROM tbl);
但是上面的代码会产生语法错误。
谁能建议一种替代方法?
I've got a script which copies table data from one DB to another, however the ID column is backed by a sequence so when a new record is inserted into the destination table the nextval(seq)
is returning the wrong value.
I need to update the sequence so that it starts at the next available ID.
I want to do something like:
ALTER SEQUENCE seq_id RESTART WITH
(SELECT MAX(id) FROM tbl);
The above produces a syntax error however.
Can anyone suggest an alternative approach?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
或者,更好的是,请参阅这个问题:
or, better yet, see this question: