遇到数据重复时跳过列 ID

Column ID skipped whenever it encounter a data duplicate

我有一个名为 email_recipients 的 table,只要 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
);

是的,这是正常的。

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

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

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