我是mysql
的新手,并且遇到了无法解决的问题,因此需要您的帮助。
我创建了一个看起来像这样的触发器:
delimiter //
CREATE trigger NEWBOOKTRIGGER138
after insert ON NEW_SALES
FOR each row
BEGIN
IF (SELECT COUNT(*) FROM NEW_SALES NS
INNER JOIN NEW_BOOKS NB ON NS.ISBN=NB.ISBN GROUP BY GENRE)>138 then
update GENRE set genre=GENRE|| "BEST.SELLER";
ELSEif (SELECT COUNT(*) FROM NEW_SALES NS
INNER JOIN NEW_BOOKS NB ON NS.ISBN=NB.ISBN GROUP BY GENRE)<=138 then
update GENRE set genre= GENRE;
end if;
END;//
如果某本书在genre title
表中出现了138次以上,则为了将new_books
(表genre BEST.SELLER
中的)new_sales
更改为new_books
。
我收到一条消息,说明触发器已成功创建。
问题是,当我尝试在Error code 1242: Subquery returns more than 1 row.
表中插入一个元组(以查看触发器是否真正起作用)时,我得到了INSERT INTO NEW_SALES(ISBN,cid)
VALUES ("6666666666666",555);
我尝试以这种方式插入元组:
employees
当我放下触发器时,上面的插入命令就可以了, 但是,如果我不能插入新的元组,该如何测试触发器的功能?
先谢谢你们。 科斯塔斯