我不是数据库的专家,我在做我的数据库项目时需要帮助。我使用phpmyadmin版本4.1.14作为我的数据库服务器。我需要有一个约束条件,以确保读者不能从图书馆借10多本书。我试图设置一个触发器,在借款表更新之前运行,以确保读者不会借用超过10本书。如果读者已经借了10本书,我想要显示一条消息。Mysql触发器约束检查
我不能得到这个工作,因为我不断收到错误。这里是我的SQL触发器
BEGIN
DECLARE msg varchar(255);
SELECT Count(ReaderID) as Counted from BORROWED
WHERE RDateTime=null
IF Counted=10 THEN
SET msg='Reader cannot borrow more than 10 books';
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT=msg;
END IF;
END
这是我得到的错误消息。 MySQL说:#1064你的SQL语法有错误;检查与你相对应的手册MySQL服务器版本的正确语法哟使用附近“IF Counted = 10 THEN SET msq ='REader不能借用超过10本书';信号S'在线5
谢谢你的帮助!
您的示例查询中没有任何内容与“ID计数...”相匹配。请发布生成消息的实际触发器。不过,作为一个暗示,说“作为Counted”并不会在任何地方设置任何变量。 –
对不起,我在输入问题时输入了错字。它不是“ID计数”,它应该是“IF计数”。我的坏 – Tomala