django 驅動mysql報主鍵重複 1062

2021-09-25 12:32:49 字數 621 閱讀 1659

在django model中使用uuid作主鍵,發現在create 資料時出現了主鍵重讀的問題(django.db.utils.integrityerror: (1062, 「duplicate entry 『38469ef5922349e4ac856207a82b7c12』 for key 『primary』」),當時我就火了,uuid碼號稱全球唯一 ,我覺得他是在騙我,不過經過一波推敲才發現時我在書寫主鍵出了點小瑕疵,廢話不多說,上圖

錯誤示範

uuid_id = models.uuidfield(primary_key=true,default=uuid.uuid4(),editable=false)

正確示範
uuid_id = models.uuidfield(primary_key=true,default=uuid.uuid4,editable=false)

看到區別了嗎,就是設定default時,錯誤的示範中default設定的是乙個函式執行,在django編譯的時候就已經呼叫生成好了乙個uuid,所以每次都會呼叫那乙個相同的返回值,而正確的做法是default設定為乙個函式,每次create資料時就呼叫一次,當然做到了全球唯一,更不可能出現主鍵重複的問題。

mysql 3台主主 mysql主主

設定主 主複製 1 在兩台伺服器上各自建立乙個具有複製許可權的使用者 2 修改配置檔案 主伺服器上 mysqld server id 10 log bin mysql bin relay log relay mysql relay log index relay mysql.index auto i...

mysql配置主主指令碼

指令碼說明 1.可用於建立mysql資料庫主主 主從 2.可以用於快速恢復mysql資料庫主主 主從 3.可用於檢視mysql資料庫同步狀態 4.可用於mysql資料庫使用者檢視 先決條件 1.mysql資料庫已經安裝好,root賬號開啟遠端登陸許可權或有其它有遠端管理許可權的賬號 2.兩台mysq...

uwsgi部署django專案 報內部錯誤

在django專案目錄下建立uwsgi.ini檔案 uwsgi 使用nginx連線時使用 socket 127.0.0.1 8080 直接做web伺服器使用 專案目錄 chdir users username pycharmprojects linaxi 專案中wsgi.py檔案的目錄,相對於專案目...