时,我有两个MySQL表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;
当我从优惠券表中删除的优惠券代码的顺序记录了优惠券相关的太也将被删除。我只是想删除优惠券代码没有任何影响表订单
是他们的任何解决方案,请吗?
问候
外键对于维护数据完整性至关重要。在插入数据之前,需要建立一个数据结构,并使其成为正确的。完成后 - 即创建所有主键和外键 - 完成工作! –
创建表时,您需要指定InnoDB或另一个能够进行CASCADE操作的MySQL引擎。否则,将使用MySQL默认值MyISAM,并且MyISAM不支持CASCADE操作。 –
您可以将您的外键约束更改为“ON DELETE SET NULL”,以便它不会删除相关订单 –