Mysql 用于添加某些数据的SQL触发器
谢谢你的帮助 我在MySQL上有3个表,将来还会增加。一个表用于我的用户,第二个表用于我的用户功能,第三个表用于角色。首先,当用户插入时,我需要在features表上添加注册。我的意思是,如果我向tbl_用户添加新用户,触发器将被触发,它将抓取新行。然后选择just id并写在tbl_度量值上,就是这样。我只需要这个Mysql 用于添加某些数据的SQL触发器,mysql,sql,database-trigger,Mysql,Sql,Database Trigger,谢谢你的帮助 我在MySQL上有3个表,将来还会增加。一个表用于我的用户,第二个表用于我的用户功能,第三个表用于角色。首先,当用户插入时,我需要在features表上添加注册。我的意思是,如果我向tbl_用户添加新用户,触发器将被触发,它将抓取新行。然后选择just id并写在tbl_度量值上,就是这样。我只需要这个 INSERT INTO tbl_measures (user_id) VALUES (tbl_users.id) 这是我的触发器,它部分工作。当我添加一个新的用户触发器时,在没
INSERT INTO tbl_measures (user_id) VALUES (tbl_users.id)
这是我的触发器,它部分工作。当我添加一个新的用户触发器时,在没有id的tbl_度量中添加一个新行
当您在
插入触发器中引用新建.id
时,主要有两种情况。在第一种情况下,您将获得正确的id
值。这就是你所期望的。在第二种情况下,它是null
。事情就是这样
关键是触发器是在插入之前运行,还是在插入之后运行<由于尚未创建记录,之前的插入id
不存在<代码>在之后插入id
存在。长话短说:
DELIMITER //
CREATE TRIGGER PROOFOFCONCEPT
AFTER INSERT
ON EACH ROW
BEGIN
INSERT INTO tbl_measures(user_id)
VALUES (NEW.id);
END; //
DELIMITER ;
我找到了解决办法:
CREATE TRIGGER `after_members_insert` AFTER INSERT ON `tbl_users`
FOR EACH ROW BEGIN
INSERT INTO tbl_measures(user_id)
VALUES(new.id);
END
您的问题提到MySQL,但您在SQL Server和Postgres中添加了标签。这是三种不同的产品。我删除了数据库标签,请只添加相关标签。您可以接受自己的答案。