[英]MySQL foreign key problem
我在MySQL 5.5.8上運行該錯誤
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE
(SELECT id FROM products WHERE id = NEW.brand_id) IS NULL;
EN' at line 6:
CREATE TRIGGER fk_brands_products_insert
BEFORE INSERT ON brands
FOR EACH ROW BEGIN
SELECT
RAISE(ABORT, "constraint violation: fk_brands_products")
WHERE
(SELECT id FROM products WHERE id = NEW.brand_id) IS NULL;
END;
有什么事嗎
您確定可以在這樣的查詢中引發錯誤嗎? 我在任何地方都找不到。 我認為正確的方法是選擇一個COUNT或EXISTS並將該結果返回到變量中。 然后,在查詢之后,如果結果不符合您的期望,則會引發錯誤。
像這樣:
SELECT count(id) INTO IDCOUNT FROM products WHERE id = NEW.brand_id;
僅僅添加一個真正的約束會更好嗎? 還是使用不支持該類型的存儲類型?
我懷疑問題出在您的select語句中沒有FROM
子句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.