【问题标题】:Column ID skipped whenever it encounter a data duplicate遇到数据重复时跳过列 ID
【发布时间】:2019-03-04 02:54:19
【问题描述】:

我有一个名为email_recipients 的表,只要email 中有重复项,就会跳过ID

CREATE TABLE email_recipients(
id SERIAL PRIMARY KEY,
email_address varchar(255) UNIQUE NOT NULL,
last_name varchar(255),
first_name varchar(255),
active boolean
);

【问题讨论】:

    标签: database postgresql database-sequence


    【解决方案1】:

    是的,这很正常。

    DEFAULT 值必须在插入之前进行评估,如果INSERT 因任何原因失败,序列值仍然被消耗。

    这是因为序列出于性能原因是非事务性的,这是一个特性。

    不要追求“无间隙”序列,它没有好处,只有痛苦。

    【讨论】:

      猜你喜欢
      • 2021-06-28
      • 2013-02-18
      • 2016-12-24
      • 1970-01-01
      • 2016-08-24
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多