我做的很简单。基本上每次用户将自己注册到系统中时,都应该运行一个触发器并复制包含该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
答案 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被插入到另一个表中,并且在外键约束上没有引发错误