创建触发器以防止插入其他表的条件

bnlyeluc  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(253)

我试图创建触发器,以防止在buku\u dalam\u pinjam上插入其他表(anggota\u 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\u dalam\u pinjam上插入数据时,它给了我错误消息,但是当我擦除触发器时,它让我在buku\u dalam\u pinjam表上插入数据。我的扳机有什么错误吗?
anggota\u dosen表
buku\u dalam\u pinjam桌
包含触发器时的错误消息

7jmck4yq

7jmck4yq1#

试试这个

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 ;

相关问题