【发布时间】:2016-05-03 23:02:48
【问题描述】:
我正在尝试创建触发器,该触发器可以使用表 user_info 的 u_count 的值更新表 user_details 的列 user_count 的值。
CREATE TRIGGER `test`
AFTER INSERT ON `user_details` FOR EACH ROW
BEGIN
DECLARE default_user_count int(11);
SELECT u_count INTO @default_user_count FROM
user_info WHERE user_info.id= user_details.id_c;
IF user_details.user_count= 0
THEN UPDATE user_details SET
user_count = default_user_count
WHERE user_details.id_c = user_info.id;
END IF;
END
触发器已成功保存,但是当我尝试在两个表中插入值时,它阻止将记录插入 user_details 意味着在此表 2 中没有插入任何行,如果我们删除触发器则它可以工作。
谁能告诉我这个触发器有问题吗?
谢谢, M.
【问题讨论】:
-
不允许在该表的触发器中修改该表的内容。
-
触发器出了什么问题是相当明显的......但是很难理解你实际上想要做什么,以及为什么......如果数据存在于一个表中,你通常应该当你需要它时(稍后)通过连接来获取它......而不是通过复制它。
-
@Michael:我无权访问核心文件,因此无法在代码中进行更改。这就是为什么我试图在插入后创建触发器。
标签: mysql triggers eventtrigger