時,我有兩個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」,以便它不會刪除相關訂單 –