Использование Trigger для обновления базы данных при использовании вставки - PullRequest
0 голосов
/ 11 октября 2018

Я ищу способ использовать триггеры для обновления строки в другой таблице.Таблица, из которой я пытаюсь получить информацию, - это AI (автоинкремент), а также первичный ключ этой таблицы.

Моя проблема в том, что я не могу найти простой способ сделать это.

Мой код:

DROP TRIGGER IF EXISTS Konsistens;
DELIMITER $$
 CREATE TRIGGER Konsistens AFTER INSERT ON PersonData
 FOR EACH ROW
BEGIN
 INSERT INTO Bruker(BrukerNavn, Passord, PersonId)
 VALUES('Bruker1', 'pw1', LAST_INSERT_ID(PersonData.PersonID));
END

Все, что я хочу, это чтобы PersonID получил значение внутриСтол Брукера.Поскольку PersonID является внешним ключом от Person to Bruker, он, кажется, не существует, когда я пытаюсь получить значение из него.Когда я использую этот триггер, он также создает ошибку, из-за которой я больше не могу вставлять значения в PersonData.Мой желаемый результат заключается в том, что когда вы вставляете что-то в PersonData, вы получаете новую строку в Bruker, которая имеет тот же PersonID, что и новая запись в PersonData.

1 Ответ

0 голосов
/ 11 октября 2018

Вы просто ссылаетесь на недавно вставленную строку как NEW

CREATE TRIGGER Konsistens 
 AFTER INSERT ON PersonData
FOR EACH ROW
 INSERT INTO Bruker (BrukerNavn, Passord, PersonId)
 VALUES(NEW.BrukerNavn, NEW.Passord, NEW.PersonId);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...