MySQL的触发错误

时间:2014-06-12 07:31:30

标签: mysql sql

我做的很简单。基本上每次用户将自己注册到系统中时,都应该运行一个触发器并复制包含该ID的行并将其插入另一个名为userinfo的表中。

Theres两张桌子。一个只包含用户名id和密码,另一个包含链接users.UserID和userinfo.UserID的外键。我希望每次使用新成员更新用户表时,都会向userinfo插入新用户。但是触发器一直给我错误。有人能告诉我我做错了什么吗?

我也愿意接受任何更容易/更合适的方式。这是我第一次玩触发器。

CREATE TRIGGER NewUsers_Trigger AFTER insert ON users FOR EACH ROW
BEGIN INSERT INTO `pms`.`userinfo` (`UserID`, `FirstName`, `LastName`,
`Address`, `City`, `Country`, `PostCode`, `PhoneNumber`) VALUES ('2',
'test', 'test', 'test', 'test', 'test', 'test', 'test'); END

1 个答案:

答案 0 :(得分:0)

触发需要设置分隔符,你也提到有一个外键,所以触发器看起来像

delimiter //
CREATE TRIGGER NewUsers_Trigger AFTER insert ON users 
FOR EACH ROW
BEGIN 
  INSERT INTO `pms`.`userinfo` (`UserID`, `FirstName`, `LastName`,
         `Address`, `City`, `Country`, `PostCode`, `PhoneNumber`) VALUES (new.UserID,
          'test', 'test', 'test', 'test', 'test', 'test', 'test'); 
END; //
delimiter ;

注意我已经使用new.UserID删除了2,这是用户表中最后插入的id,因此相同的id被插入到另一个表中,并且在外键约束上没有引发错误