Как создать триггер перед выполнением обновления? - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть две таблицы: tbl_PersonalInfo и tbl_User.Мне нужно установить триггер, который вызывается перед обновлением таблицы tbl_user.

Триггер должен проверить, существует ли идентификатор IdNum, указанный в операторе обновления, в таблице tbl_PersonalInfo.Если оно существует, обновление должно продолжить выполнение, в противном случае обновление не должно продолжать выполняться

tbl_PersonalInfo:

  IdNum | FullName
  0001    John Regan

tbl_User:

UserId | IdNum | Username | Password
100     0001      admin      admin

1 Ответ

0 голосов
/ 13 сентября 2018

Вы можете сделать что-то вроде этого (не проверено)

CREATE TRIGGER my_trigger BEFORE UPDATE ON tbl_user
    FOR EACH ROW
    BEGIN
        IF NEW.IdNum NOT IN (SELECT T.IdNum From tbl_PersonalInfo T ) THEN 
           CALL `inexistent function to trigger an error and abord`;
        END IF;
    END;

Если у вас MySQL 5.5 или выше, вы также можете вызвать ошибку, которая будет отслеживаться вашим приложением. для этого измените CALL на

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The IdNum doesnt exists in the PersonalInfo table';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...