標題說明了一切。錯誤1062,「EMPTY TABLE上的密鑰'Email_UNIQUE'的重複條目'[email protected]'」
具有以下創建語法的空表,只有數據庫中的表。
CREATE TABLE IF NOT EXISTS `ACME`.`Registration` (
`ConfirmationNumber` INT NOT NULL AUTO_INCREMENT,
`FirstName` VARCHAR(45) NOT NULL,
`LastName` VARCHAR(45) NOT NULL,
`CompanyName` VARCHAR(100) NOT NULL,
`Title` VARCHAR(60) NOT NULL,
`Email` VARCHAR(60) NOT NULL,
`PhoneNumber` VARCHAR(20) NOT NULL,
`StreetAddress` VARCHAR(100) NOT NULL,
`City` VARCHAR(30) NOT NULL,
`Province` VARCHAR(30) NOT NULL,
`ZipCode` VARCHAR(10) NOT NULL,
`Country` VARCHAR(40) NOT NULL,
PRIMARY KEY (`ConfirmationNumber`),
UNIQUE INDEX `ConfirmationNumber_UNIQUE` (`ConfirmationNumber` ASC),
UNIQUE INDEX `Email_UNIQUE` (`Email` ASC),
UNIQUE INDEX `PhoneNumber_UNIQUE` (`PhoneNumber` ASC))
ENGINE = InnoDB
任何和所有插入都會出現此錯誤。
Error 1062, "Duplicate entry '[email protected]' for key 'Email_UNIQUE'"
我試着插入有和沒有0的自動遞增確認號碼。 (Mac)系統偏好設置窗格顯示服務器運行正常,但如果我嘗試停止/從終端啓動,我會得到奇怪的錯誤(012) 。具體做法是:
$ mysql.server stop
ERROR! MySQL server PID file could not be found!
$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/rover-231-4.rovernet.mtu.edu.pid).
雖然,我知道,我連接到正確的服務器(本地主機)和數據庫,由於數據被打INSERTED到登記表。
這是一個Python/MySQL/Flask - > HTML/CSS/JS堆棧,所有這些我都是新手。 Python代碼插入是:
query_string = (
"INSERT INTO Registration "
"(FirstName, LastName, CompanyName, Title, Email, PhoneNumber, "
"StreetAddress, City, Province, ZipCode, Country) "
"VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);")
cursor.execute(query_string, (first_name, last_name, company, title, email, phone, address, city, state, zipcode, country))
編輯:我還要補充一點,直到我遇到了一個安裝問題,必須重新安裝,完全相同的代碼工作完全正常。
我刪除了整個數據庫和/或表以及重命名它們。相同的結果。我只有在本地主機的服務器和用戶根定義。由於整個程序中沒有循環,所以我不能循環,這是唯一的插入命令,後面跟着打印輸出。沒有定義插入觸發器,因爲上面給出的sql是整個數據庫創建腳本。電子郵件變量肯定是在變化,因爲在HTML字段中使用不同的值會產生錯誤中的不同值。如果我完全刪除電子郵件,它也會發生電話號碼。 – unwrittenrainbow
那麼這就是我們在違反唯一鍵約束時得到的錯誤。我的下一個建議是*刪除唯一索引並運行代碼。然後檢查表格的內容,看它是否包含任何行。 (我懷疑你會找到兩個或更多的行)。 – spencer7593