POSTGRES-使用ON CONFLICT防止序列递增不要这样做
技术问答
369 人阅读
|
0 人回复
|
2023-09-12
|
说我有下表。我想要表中唯一的名字,所以没有重复的名字。在插入事物的过程中,不需要检查是否已经有了这个名字。
+ K$ T4 {( ~! e$ F9 |7 tCREATE TABLE things( id SMALLSERIAL PRIMARY KEY, name varchar UNIQUE);当我插入这个值时,它可以工作。如果办公桌已经在东西里了,就不会插了。, F" W# i3 Q0 [3 W' }8 f5 b+ X6 t8 @
INSERT INTO things (name)VALUES ('desk')ON CONFLICT DO NOTHING;唯一的问题是冲突id字段的顺序。# K8 A' J) X* x# y( ~, @
如果经常发生这种情况,ID字段类型的序列最终会变得太大。8 d/ T5 n# X8 f. Q7 P
有办法防止这种情况吗?# Y0 Y+ @! D6 F* O
5 r* P9 `+ h6 S; U8 T5 Z( ^ 解决方案: |
|
|
|
|
|