2013-01-13 244 views
1

我正在運行修剪查詢來刪除slug列中帶有尾隨「 - 」的任何行。MySQL重複輸入錯誤#1062

我有重複的行,但現在需要。

我該如何解決錯誤,以便它運行修剪查詢?

UPDATE terms 
SET slug = TRIM(TRAILING '-' FROM slug); 

錯誤:#1062 - Duplicate entry 'system' for key 'slug'

+0

什麼是錯誤?你能不能把它展示出來...... – bonCodigo

+0

#1062 - 鍵「slug」的重複輸入'系統' – Dave

+0

你有2行,其中slug列包含系統和系統 - 例如一個用「system」,另一個用「system-」 – Wasif

回答

1

如果你有一個UNIQUE約束的slug列設置,您必須刪除:

ALTER TABLE terms DROP INDEX my_unique_constraint 

請注意,上面只工作了MySQL的 - 陳述變化按照數據庫。

+0

正是我不得不做的..謝謝! – Dave

1

它看起來像柱塞被定義爲唯一或主鍵。如果要保留重複記錄,則可能需要從此列中刪除UNIQUE或PRIMARY KEY或/並引入不同的PRIMARY KEY/UNIQUE列。

+0

如果聲明瞭pirmary/unique鍵,那麼在slug列中如何存在重複項? :$ – bonCodigo

+1

@bonCodigo:現在沒有重複*,但錯誤意味着在執行「TRIM」之後,會出現。 – DCoder

+0

@DCoder是正確的,在TRIM之前沒有重複的行。例如一行包含「a」,第二行包含「a-」。但是在TRIM之後,由於列被定義爲UNIQUE/PRIMARY KEY,兩者都將不允許使用。 – Wasif