我有一個在MariaDB中運行的數據庫。我使用主鍵的自動編號,在我的本地開發系統上,一切都按預期工作。虛擬機上的MariaDB自動編號
在客戶端系統上安裝了相同的數據庫和系統,在這種情況下,客戶端已選擇在運行Windows Server的虛擬機上運行安裝。
這個系統一直在尋找幾個星期,在過去幾天發生了一些奇怪的問題,今天我試圖編輯一個現有的記錄,而不是更新的記錄主鍵爲0的新記錄是添加到數據庫中,所以自動增量不能可靠地工作。
這是怎麼發生的?什麼會導致它?
我會檢查並修復數據庫。
我有一個在MariaDB中運行的數據庫。我使用主鍵的自動編號,在我的本地開發系統上,一切都按預期工作。虛擬機上的MariaDB自動編號
在客戶端系統上安裝了相同的數據庫和系統,在這種情況下,客戶端已選擇在運行Windows Server的虛擬機上運行安裝。
這個系統一直在尋找幾個星期,在過去幾天發生了一些奇怪的問題,今天我試圖編輯一個現有的記錄,而不是更新的記錄主鍵爲0的新記錄是添加到數據庫中,所以自動增量不能可靠地工作。
這是怎麼發生的?什麼會導致它?
我會檢查並修復數據庫。
修復了兩個不同系統上相同的數據庫,mariadb的版本相同,但是Windows的版本稍有不同。一個系統上的存儲過程發送0而不是null。在一個系統中,0被視爲空,並且創建了一條新記錄,在另一個系統上,0被解釋爲數據庫ID,這導致了問題。
我現在確保爲null發送,如果ID不是> 0
自動增量僅在插入時開始,並且沒有提供值(用於該屬性)。所以你仍然可以手動更新它。我會說自動增量沒有失敗。
它已經失敗,該記錄爲0主鍵......怎麼可能成功呢? – SPlatten
這可能是「用戶錯誤」。讓我們看看插入的語句。我懷疑它有「0」明確存儲到auto-inc列。 –