Создание триггера для предотвращения вставки с условием из другой таблицы - PullRequest
0 голосов
/ 17 декабря 2018

я пытаюсь создать триггер, который предотвращает вставку в buku_dalam_pinjam с определенным условием из другой таблицы, которая является anggota_dosen.это мой текущий триггер

CREATE DEFINER=`root`@`localhost` TRIGGER `buku_dalam_pinjam_BI`
BEFORE INSERT ON `buku_dalam_pinjam`
FOR EACH ROW BEGIN
    if (buku_dalam_pinjam.id_agt_dosen=anggota_dosen.id_agt_dosen and 
        anggota_dosen.ttl_proses_pinjam >=5) then
    signal sqlstate '45000' set message_text="error message";

    end if;
END

, он был успешно создан, затем, когда я пытаюсь вставить данные в buku_dalam_pinjam, он выдаёт мне сообщение об ошибке, но когда я стираю триггер, он позволяет мне вставить в таблицу buku_dalam_pinjam.Так есть ли ошибка в моем триггере?

таблица anggota_dosen

таблица buku_dalam_pinjam

сообщение об ошибке, когда явключить триггер

1 Ответ

0 голосов
/ 17 декабря 2018

попробуйте

drop trigger if exists buku_dalam_pinjam_BI;
delimiter $$
CREATE  TRIGGER `buku_dalam_pinjam_BI`
BEFORE INSERT ON buku_dalam_pinjam
FOR EACH ROW BEGIN
    if exists (select 1 from anggota_dosen 
            where new.id_agt_dosen = anggota_dosen.id_agt_dosen and 
        anggota_dosen.ttl_proses_pinjam >=5) then
    signal sqlstate '45000' set message_text="error message";

    end if;
END $$
delimiter ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...