2012-08-11 92 views
1

我想使用插入忽略語句在數據庫中放入一個名稱。我不想創建重複,但是,我使用插入忽略語句不斷插入!MYSQL在一列上插入忽略

的說法是:

INSERT IGNORE INTO firstname(name) VALUES ('Tommy') 

我的數據庫顯示,這一點:人們幫助我的信息

id | name 
------------- 
1  Tommy 
2  Tommy 
3  Tommy 

一對夫婦位。我的ID是我的主鍵,它是自動遞增的。

我的猜測是,因爲新的ID是自動創建它認爲它的新結果!我不知道如何解決這個expcept一個更大的SQL查詢檢查,如果名稱湯米存在第一

感謝

回答

5

這是因爲從firstname表中的列namenot unique。嘗試使用此DDL語句添加unique約束,

ALTER TABLE firstname ADD UNIQUE (name); 

然後嘗試,如果它仍然添加重複的名字。希望它現在的作品:)

+0

我已經完成了這項工作,而且效果很好。你還會使用INSERT IGNORE還是隻使用INSERT? – bubblebath 2012-08-11 09:20:01

+2

你仍然可以使用'INSERT IGNORE' :) – 2012-08-11 09:21:55

0

您是否嘗試在'名稱'列設置'唯一鍵'約束?

0

鑑於您的架構,使用IGNORE並無區別。 IGNORE用於忽略插入過程中產生的潛在錯誤。

爲避免名稱列中出現重複,請在該列上添加UNIQUE約束並從INSERT語句中刪除IGNORE關鍵字。如果繼續使用IGNORE,則UNIQUE約束將導致錯誤,但會被忽略,這意味着UNIQUE約束將被忽略。