2015-12-28 54 views
0

我想只在數據不存在的情況下才執行sql插入。我有一個語言表,它具有一個自動遞增的主ID字段和一個字符串描述字段來捕獲語言的名稱(例如英語)。我只想在描述字段不存在的情況下能夠插入到數據庫中。主要ID不重要。所以我只想插入表格中,如果「英文」不是表格中的一個值。此外,我只給予描述,以檢查它是否已經在數據庫中(我提到這是因爲ON DUPLICATE KEY要求所有字段匹配,而我沒有該ID)。如果數據不存在,MySQL插入(不包括主鍵)

我搜索並嘗試了這麼多的查詢,沒有任何人產生正確的結果。任何想法都會有所幫助。謝謝。

+1

請編輯您的問題,並提供示例數據以及您正在嘗試執行的操作。 –

+0

爲什麼不能在'description'列上創建'UNIQUE'約束? – spencer7593

回答

0

您只需在描述字段中添加一個UNIQUE約束即可。

然後在代碼中使用「INSERT ... ON DUPLICATE KEY UPDATE」。請參閱此link

0

如果您需要更新具有UNIQUE鍵衝突的行 - 您應該使用「meda」答案。 如果你只需要插入的行沒有重複,你還應該添加UNIQUE約束,但使用的查詢:

INSERT INTO忽略表中設置....

這個查詢將插入有沒有衝突行,而忽略其他人,而不任何mysql錯誤