1. 程式人生 > >mysql 在修改新增欄位(alter table 表名 add column 或者 modify column)且帶unique時提示duplicate entry for key的原因以及解決方案

mysql 在修改新增欄位(alter table 表名 add column 或者 modify column)且帶unique時提示duplicate entry for key的原因以及解決方案

今天在公司臨時維護一張表時,我作了一個小動作,新增一個欄位,並且設定為unique時,盡然無法新增欄位,我當時就納悶了,寫了這麼多sql,這麼奇怪的問題還是第一次見,不多說,直接看圖

【我的sql檔案如下】


【執行sql語句報錯:alter table smart_payrecord add column api_pay_no varchar(32) not null unique comment '第三方介面訂單號' after pay_no;】

如下圖所示!

【於是我懷疑是否是表中存在資料在作怪,於是我把表資料清空(嚴重警告!真實情況請勿隨意清空,注意備份資料),然後再進行新增欄位就行了,有圖為證】

②:【推薦】更安全和快捷的科學的方法解決:先把這個欄位去掉索引,再進行修改,之所以報錯就是因為欄位存在索引的原因,一個欄位加上unique會預設加上索引的,這個毫無疑問!