我在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;
可能出现什么问题?
答案 0 :(得分:0)
您确定可以在查询中引发错误吗?我找不到任何地方。我认为正确的方法是选择COUNT或EXISTS并将该INTO的结果返回给变量。然后,在查询之后,如果结果不符合您的期望,则引发错误。
这样的事情:
SELECT count(id) INTO IDCOUNT FROM products WHERE id = NEW.brand_id;
通过添加真正约束的方式不是更好吗?或者您使用的是不支持的存储类型吗?
答案 1 :(得分:0)
我怀疑问题是你的select语句中没有FROM
子句。