0
我在MySQL中有一个数据库。这里是SQL查询来创建它http://paste.org.ru/?xzctqi如何创建插入行后增加列值的触发器?
这里是主表books
。我需要做的只是添加一些书时,我选择了发布者ID。添加书籍后,我需要遍历此表中的所有记录,并为所有行增加第publisher_books_amount
列,这些行与当前添加的行具有相同的发布者。
+----+-------+--------+------------------------+-----------+
| id | title | author | publisher_books_amount | publisher |
+----+-------+--------+------------------------+-----------+
| 1 | Book1 | 1 | 0 | 1 |
| 2 | Book2 | 2 | 0 | 1 |
| 3 | Book3 | 1 | 0 | 2 |
| 4 | Book4 | 3 | 0 | 3 |
| 5 | Book1 | 3 | 0 | 1 |
+----+-------+--------+------------------------+-----------+
我创建触发器
DROP TRIGGER IF EXISTS `insert_trigger`;
DELIMITER |
CREATE TRIGGER `insert_trigger` AFTER INSERT ON books
FOR EACH ROW
BEGIN
UPDATE books SET publisher_books_amount = (publisher_books_amount + 1)
WHERE publisher = NEW.publisher;
END;
|
DELIMITER ;
但是当我尝试添加的书,MySQL的为我提供了一个错误。
可以在存储函数/因为它已经是使用由调用这个存储函数/触发声明 不更新表“书”触发。
不要问我为什么要非规格化数据库。我只需要上面描述的结构。
顺便说一句我需要删除和更新行后创建相同的触发器。如果有一些问题,你能帮助我吗?
此致德米特里。