Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 用于添加某些数据的SQL触发器_Mysql_Sql_Database Trigger - Fatal编程技术网

Mysql 用于添加某些数据的SQL触发器

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) 这是我的触发器,它部分工作。当我添加一个新的用户触发器时,在没

谢谢你的帮助

我在MySQL上有3个表,将来还会增加。一个表用于我的用户,第二个表用于我的用户功能,第三个表用于角色。首先,当用户插入时,我需要在features表上添加注册。我的意思是,如果我向tbl_用户添加新用户,触发器将被触发,它将抓取新行。然后选择just id并写在tbl_度量值上,就是这样。我只需要这个

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中添加了标签。这是三种不同的产品。我删除了数据库标签,请只添加相关标签。您可以接受自己的答案。