如何在使用触发器的 SQL 插入后更新另一个表
Posted
技术标签:
【中文标题】如何在使用触发器的 SQL 插入后更新另一个表【英文标题】:How to update another table table after SQL insert with trigger 【发布时间】:2014-01-05 22:59:01 【问题描述】:我有点被 SQL 触发器所困扰。 (在 phpmyadmin 中),我已经在 *** 中查看了如何解决我的问题,但我找不到答案
我在数据库中有一个名为“items”的表,它有行-ID、名称、价格、section_ID、数字(我得到了多少)。 另一个表是“actions”,它有 rows-ID、when_inserted、which_table、actions_type_ID(插入、更新、删除。就像那样)、user_ID。
那么,我需要触发器做什么?在表“项目”更新后,我需要在表“操作”中创建新记录,使用新 ID,例如(表“actions”用于插入每个操作在数据库上所做的,来自什么人,何时)
是的,我知道这个问题可能已经回答了,但我找不到。如果您可以帮助我并提供一个链接,指向我可以跟随低谷并做我需要做的事情,那么 - 请这样做。如果你能用语法来回答,那就太棒了。
对不起,我的英语不好。
【问题讨论】:
【参考方案1】:您需要为每个操作在表项上创建触发器,一个用于插入,一个用于更新,一个用于删除
DROP TRIGGER IF EXISTS `insertItems`;
DELIMITER //
CREATE TRIGGER `insertItems` AFTER UPDATE ON `items`
FOR EACH ROW BEGIN
INSERT INTO actions (when_inserted, which_table, actions_type_ID) VALUES (CURRENT_TIMESTAMP, 'items', 'update');
END
//
DELIMITER ;
等等
希望对你有帮助
【讨论】:
以上是关于如何在使用触发器的 SQL 插入后更新另一个表的主要内容,如果未能解决你的问题,请参考以下文章