gpt4 book ai didi

Mysql删除外键时删除所有记录

转载 作者:行者123 更新时间:2023-11-29 07:46:34 25 4
gpt4 key购买 nike

我有两个 MySQL 表

CREATE TABLE IF NOT EXISTS `orders` (
`order_id` int(5) NOT NULL AUTO_INCREMENT,
`order_address` varchar(255) NOT NULL,
`order_paymentmethod` varchar(50) NOT NULL,
`coupon_code` varchar(50) NOT NULL,
`user_id` int(5) NOT NULL,
PRIMARY KEY (`order_id`),
KEY `fk_orderuser` (`user_id`),
KEY `fk_ordercoupon` (`coupon_code`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


CREATE TABLE IF NOT EXISTS `coupons` (
`coupon_code` varchar(50) NOT NULL,
`coupon_discount` int(255) NOT NULL,
PRIMARY KEY (`coupon_code`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

当我从优惠券表中删除优惠券代码时,与该优惠券相关的订单记录也会被删除。我只是想删除优惠券代码而不影响餐 table 订单

请问他们有什么解决方案吗?

问候

最佳答案

在这种情况下,您可以使用 mysql 触发器来解决该问题。为优惠券表创建触发器

CREATE TRIGGER `coupons_before_delete` AFTER DELETE ON `coupons` FOR EACH ROW BEGIN
-- INSERT INTO add_inout_to_error_log(msg) VALUES(old.coupon_code);
DELETE FROM orders WHERE orders.coupon_code = old.coupon_code;
END

此代码中的old.coupon_code是当前已删除的优惠券代码。您可以访问已删除项目的任何字段

关于Mysql删除外键时删除所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27654363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com