新しいユーザーが自動的に登録されると、そのpermissionIDは1になります。これは単純ですが、mysql構文エラーが私を殺しています。構文エラーMysql
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@userID int' at line 5
はEDIT::私はおよそDELIMETER
とNEW
代わりinserted
のを知りませんでした。これは誤りである
CREATE TRIGGER `user_default_role`
AFTER INSERT ON `users`
FOR EACH ROW
BEGIN
DECLARE @userID int;
SET @userID = (SELECT userID FROM inserted LIMIT 1);
INSERT INTO `user_permission` (`userID`,`permissionID`,`created_at`,`updated_at`) VALUES (@userID,1 ,NOW(),null);
END
を助けてください。すばらしく反応したすべての人に感謝します。
DELIMITER $$
CREATE TRIGGER `user_default_role` AFTER INSERT ON `users`
FOR EACH ROW
BEGIN
INSERT INTO `user_permission` (`userID`, `permissionID`, `created_at`, `updated_at`)
VALUES (new.userID, 1, NOW(), null);
END;$$
DELIMITER ;
'create trigger'の前に' delimiter'文がありますか? 'inserted'というテーブルがありますか?それは疑わしい。 –