python - postgresql 插入时报错ID已存在
PHP中文网
PHP中文网 2017-04-18 09:44:40
0
1
492

作插入操作:

name = 'test'
cur.execute("INSERT INTO scholars(name) VALUES('{}') returning id".format(name))
id = cur.fetchone()
print(id)

报错如下:

psycopg2.IntegrityError: duplicate key value violates unique constraint "idx_16514_primary"
DETAIL:  Key (id)=(2321) already exists.

id=2301时插入成功,并且成功返回ID。
之后插入一次,id+1,报错ID已存在。

数据库插入操作,ID不是自动寻找最大值,然后自增么?

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(1)
刘奇

Di sini saya mendapat jawapan Bagaimana untuk menetapkan semula urutan kunci utama postgres apabila ia tidak segerak? kepada soalan ini.

Sesuatu yang tidak kena dengan id sequence saya.

Saya membetulkannya dengan melakukan ini.

SELECT MAX(id) FROM scholars;

=> 11518

SELECT nextval('scholars_id_seq');

=> 2324 # di sini adalah lebih rendah daripada maks(id)

SELECT setval('scholars_id_seq', (SELECT MAX(id) FROM scholars));

=> 11518 # betulkan

SELECT nextval('scholars_id_seq');

=> 11519 # selesai!

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan