不得使用外键与级联,一切外键概念必须在应

直接级联删除会导致很多过程不可见。存储过程或者触发器也可以删除外键约束子表主句。DELIMITER $$
CREATE PROCEDURE delete_order(IN order_id INT)
BEGIN
    -- 删除 order_items 表中与 order_id 相关联的数据
    DELETE FROM order_items WHERE order_id = order_id;

    -- 删除 orders 表中的数据
    DELETE FROM orders WHERE id = order_id;
END $$
DELIMITER ;
CREATE TRIGGER delete_order_items
BEFORE DELETE ON orders
FOR EACH ROW
BEGIN
    DELETE FROM order_items WHERE order_id = OLD.id;
END;
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务