Проблемы с MySQL Trigger - PullRequest
0 голосов
/ 25 июля 2011

Поэтому я пытаюсь настроить триггер, который при создании новой строки в моей пользовательской таблице также создает новую строку в моей таблице профиля, и первичный ключ в пользовательской таблице вставляется в слот внешнего ключа таблица профилей. Это код, который я использую в данный момент, и он не работает.

    CREATE TRIGGER userID
AFTER INSERT ON user FOR EACH ROW
BEGIN
    INSERT INTO profile (userID)
    VALUES(user.userID);
END

Внешний ключ в таблице профиля и первичный в пользовательской таблице называются userID

1 Ответ

1 голос
/ 25 июля 2011

Сказать user.userID не означает ничего полезного в этом контексте, вы хотите сослаться на вновь созданную строку, используя NEW:

CREATE TRIGGER userID
AFTER INSERT ON user FOR EACH ROW
BEGIN
    INSERT INTO profile (userID)
    VALUES(NEW.userID);
END

Из подробного руководства :

Вы можете ссылаться на столбцы в предметной таблице (таблица, связанная с триггером), используя псевдонимы OLD и NEW.[...] NEW.col_name относится к столбцу новой строки для вставки или существующей строки после ее обновления.

...