簡體   English   中英

MySQL外鍵問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM