Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除触发器不工作-MYSQL_Mysql_Events_Triggers - Fatal编程技术网

删除触发器不工作-MYSQL

删除触发器不工作-MYSQL,mysql,events,triggers,Mysql,Events,Triggers,第一张表-rm_desc 第二张桌子-房间类别映射 想要实现:当从rm_desc自动删除记录时,它还应该从room_cat_映射中删除相关记录 但下面的触发器不起作用,有什么新的线索可以触发吗 DROP TRIGGER IF EXISTS DELETE_ROOM_TYPES; DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ TRIGGER `DELETE_ROOM_TYPES` BEFORE DELETE

第一张表-rm_desc
第二张桌子-房间类别映射

想要实现:当从rm_desc自动删除记录时,它还应该从room_cat_映射中删除相关记录

但下面的触发器不起作用,有什么新的线索可以触发吗

DROP TRIGGER IF EXISTS DELETE_ROOM_TYPES;
DELIMITER $$

CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    TRIGGER `DELETE_ROOM_TYPES` BEFORE DELETE
    ON `rm_desc`
    FOR EACH ROW 
    BEGIN
        DELETE FROM room_cat_mapping
        WHERE room_cat_mapping.prop_id = rm_desc.res AND room_cat_mapping.room_cat_id = rm_desc.rm_cat;
    END$$
DELIMITER ;
这应该做到:

DROP TRIGGER IF EXISTS DELETE_ROOM_TYPES;
DELIMITER $$

CREATE

    TRIGGER `DELETE_ROOM_TYPES` AFTER DELETE
    ON `rm_desc`
    FOR EACH ROW 
    BEGIN
        DELETE FROM room_cat_mapping
        WHERE room_cat_mapping.prop_id = OLD.res AND room_cat_mapping.room_cat_id = OLD.rm_cat;
    END$$
DELIMITER ;

我在之后将触发器更改为,并使用旧的引用删除的行值

为什么在级联删除时使用触发器而不是外键?你收到了什么错误信息?你应该弄清楚什么不起作用。错误?什么也没发生?@shadow-不是带有级联删除的外键,因为room_cat_映射相同的记录可以重复well@andy-“不工作”是指自动从rm_desc中删除记录时,也不会从room_cat_映射中删除相关记录。对不起,不,它不工作,房间映射是否需要添加外键约束。目前?目前这两个表之间没有关系,这是一个问题吗?因为我以前也试过,它也不起作用