1. 程式人生 > >django使用postgresql時提示主鍵沖突

django使用postgresql時提示主鍵沖突

postgre 數據庫 next 最大 nextval sql 表名 post 當前

在django使用postgresql數據庫時,當你使用默認主鍵,但當你手動使用添加記錄到相關數據庫時(非insert操作,如使用navicate直接在表中復制粘貼記錄),此時django在插入數據時,會提示主鍵沖突,這是因為postgresql的主鍵自增是建立在它內部機制工作的,你可以使用如下sql來獲取或設置相關的自增ID序列:

    select nextval(‘表名_id_seq‘);             #此操作會獲取當前基於表中最大ID,並會設置ID+1

    select currval(‘表名_id_seq‘);    # 此操作會獲取當前表自增ID的序列號

    select setval(‘表名_id_seq‘, 3, true);  #此操作會修改此表自增ID的起始ID值

django使用postgresql時提示主鍵沖突