回答

收藏

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( ^    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则