我想创建一个触发器,该触发器创建一个新的表行。我是“触发语言”的新手,需要您的帮助。
我的数据库如下所示。
user ---------------------------------------------------- | userid | username | password | full_name | email | ---------------------------------------------------- | 67 | testuser | xxxxxxxx | thefullna | email | ---------------------------------------------------- | 68 | testuse2 | xxxxxxxx | thefulln2 | email | ---------------------------------------------------- | 69 | testuse3 | xxxxxxxx | thefulln3 | email | ---------------------------------------------------- highscore_easy ------------------------------------------------------ | ID | user | time | date | level | userid | ------------------------------------------------------ | 200 | testuser | 11113233 | date | 444 | 0 | ------------------------------------------------------ | 201 | testuse2 | 11113235 | date | 444 | 0 | ------------------------------------------------------ | 203 | testuse3 | 11113236 | date | 444 | 0 | ------------------------------------------------------
如果创建了新用户,则将在表“用户”中创建新行。创建新行时,我想创建一个触发器,在“ highscore_easy”中创建一个“ DEFAULT”行。
默认行必须使用表“ user”中填写的用户名,时间,日期和级别在默认行中可以为“ 0”,“ highscore_easy”中的USERID必须与表中的用户名相同“用户”。
因此,如果我现在创建一个用户:
user ---------------------------------------------------- | userid | username | password | full_name | email | ---------------------------------------------------- | 88 | example | xxxxxxxx | thefullna | email | ---------------------------------------------------- highscore_easy ------------------------------------------------------ | ID | user | time | date | level | userid | ------------------------------------------------------ | 200 | example | 0 | 0 | 0 | 88 | ------------------------------------------------------
ID将在highscore_easy中单独创建。
如果我犯了一些错误,对不起我的英语不好。如果您能帮助我,那太好了。
也许有一种无需触发器即可解决此问题的方法,但我不知道其他解决方案。
您可以尝试如下操作:
DELIMITER $$ CREATE TRIGGER `ai_user` AFTER INSERT ON user FOR EACH ROW BEGIN INSERT INTO highscore_easy SET user = NEW.username, userid = NEW.userid, time = 0, date = 0, level = 0; END
在单个触发器中,您可以根据需要插入任意数量的插入物:
DELIMITER $$ CREATE TRIGGER `ai_user` AFTER INSERT ON user FOR EACH ROW BEGIN INSERT INTO highscore_easy SET user = NEW.username, userid = NEW.userid, time = 0, date = 0, level = 0; INSERT INTO highscore_expert SET user = NEW.username, userid = NEW.userid, time = 0, date = 0, level = 0; END