发布于 2026-09-10T10:59:48.871968Z · Mikhail Shytsko · seedfa.st

用 INSERT 显式指定 id 时,serial 或 GENERATED AS IDENTITY 的默认值根本不会求值,序列停在原地,表却一直在长。于是导入全程成功,应用发出的第一条插入却撞上主键冲突。Mikhail Shytsko 给出的修法是 setval 配合 pg_get_serial_sequence(),而不是硬写序列名;空表要用三参数形式避免静默失败,标识列则直接 ALTER TABLE ... RESTART WITH。
用 INSERT 显式指定 id 时,serial 或 GENERATED AS IDENTITY 的默认值根本不会求值,序列停在原地,表却一直在长。于是导入全程成功,应用发出的第一条插入却撞上主键冲突。Mikhail Shytsko 给出的修法是 setval 配合 pg_get_serial_sequence(),而不是硬写序列名;空表要用三参数形式避免静默失败,标识列则直接 ALTER TABLE ... RESTART WITH。
来源记录
- center.info_item · 76befc61b194e364 · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 76befc61b194e364 · 2026-10-03T04:08:55.967155Z