Я хочу создать триггер, который создает новую таблицу Row. Я полностью новичок в «Trigger Language», и мне нужна ваша помощь.
Моя база данных выглядит следующим образом.
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 | ------------------------------------------------------
Если новый пользователь будет создан, в таблице «пользователь» будет создана новая строка. Когда новая строка создается, я хочу создать триггер, чтобы создать «DEFAULT» Row в «highscore_easy».
Строка по умолчанию должна принимать имя пользователя, которое заполняется в таблице «пользователь», время, дата и уровень могут быть «0» в строке по умолчанию, а USERID в «highscore_easy» должен быть тем же самым идентификатором пользователя, что и в таблице «пользователь».
Поэтому, если я создаю пользователя сейчас:
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