假设我有以下表格 "things"。我希望表格中的名称是唯一的,因此没有重复项。插入一个“thing”的过程不应该检查表中是否已经存在具有相同名称的“thing”。
CREATE TABLE things(
id SMALLSERIAL PRIMARY KEY,
name varchar UNIQUE
);
当我输入这样的值时,它会正常工作。如果“desk”已经存在于“things”中,它不会被插入。
INSERT INTO things (name)
VALUES ('desk')
ON CONFLICT DO NOTHING;
唯一的问题是ON CONFLICT DO NOTHING并不真正什么都不做,它仍会增加id字段的序列。
如果这种情况发生得太频繁,id序列最终可能会超出字段类型的限制。
有没有办法防止这种情况发生?