MySQL在編程塊 - 存儲過程,函數和觸發器中僅支持IF
語句。因此,你無法做到你想要的那樣。
相反,你可以只寫一個查詢:
INSERT INTO Products (product_id, name, category, manufacturer)
SELECT product_id, name, category, manufacturer
FROM (SELECT 10000 as product_id, 'IphoneZ' as name, null as category, 'appl' as manufacturer) t
WHERE NOT EXISTS (SELECT 1 FROM Products p WHERE p.name = t.name and p.manufacturer = t.manufacturer);
而事實上,最好是有數據庫直接執行這種獨特性。你可以用一個唯一約束/索引這樣做:
CREATE UNIQUE INDEX unq_product_manufacturer_name ON product(manufacturer, name);
然後,你可以寫一個查詢做忽略錯誤:
INSERT INTO Products (product_id, name, category, manufacturer)
VALUES (10000, 'IphoneZ', null, 'appl')
ON DUPLICATE KEY UPDATE category = VALUES(category);
的ON DUPLICATE KEY
沒有做任何事情 - 它只是用來避免在插入重複值時返回錯誤。
雙引號代替單引號? – jarlh
閱讀說明書 http://dev.mysql.com/doc/refman/5.7/en/exists-and-not-exists-subqueries.html – 2oppin
谷歌搜索你的標題和'mysql':http://stackoverflow.com/5528854 /問題/使用-的-mysqls - 如果存在 - 。請閱讀[問]。 – philipxy