Rumah  >  Soal Jawab  >  teks badan

python - postgresql 插入时报错ID已存在

作插入操作:

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中文网2765 hari yang lalu464

membalas semua(1)saya akan balas

  • 怪我咯

    怪我咯2017-04-18 09:46:40

    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!

    balas
    0
  • Batalbalas