mysql - DELETE 语句与外键 REFERENCE 冲突
问题描述
我试图弄清楚如何从存在外键约束的表中删除一行。它应该根据给定的删除一行Item_Number
这些表格是:
CREATE TABLE MENU(
Item_Number int NOT NULL AUTO_INCREMENT,
Store_Number INT(10),
Price FLOAT(10,2),
Item_Description CHAR(35),
PRIMARY KEY(Item_Number)
);
CREATE TABLE ORDER_MENU(
Order_ID INT(10),
Item_Number int,
PRIMARY KEY(Order_ID, Item_Number),
FOREIGN KEY(Order_ID) REFERENCES ORDERS(Order_ID),
FOREIGN KEY(Item_Number) REFERENCES MENU(Item_Number)
);
我目前的陈述没有删除任何东西!我尝试切换表格的顺序,但什么也没有!
尝试声明 1:
sql ="ALTER TABLE ORDER_MENU WITH CHECK ADD CONSTRAINT Item_Number FOREIGN KEY(<Order_ID, Item_Number>) REFERENCES MENU (Item_Number, Store_Number, Price, Item_Description) ON DELETE CASCADE;";
尝试的陈述 2:
sql = "BEGIN TRANSACTION SET XACT_ABORT ON DELETE ORDER_MENU WHERE Item_Number IN (<select Item_Number from [ORDER_MENU].[MENU] AS Item_Number WHERE Item_Number.ObjectID = MENU.Item_Number)>) DELETE Item_Number WHERE Item_Number= : Item_Number COMMIT TRANSACTION;";
解决方案
推荐阅读
- amazon-s3 - Minio 获取存储统计信息(已用空间、可用空间)
- ios - iOS 应用扩展中的访问令牌刷新
- asp.net - 从命令行启动 azure 项目
- ruby - Ruby Git Diff 行信息解析器
- watson-dialog - 如何编辑/保存上下文变量的 IBM watson 助手条件槽值?
- python - 类中的 Python 方法
- postgresql - 函数中的 for 循环无效
- r - 在 R 中比较值和生成新列的有效方法
- c++ - 在 C++ 中,如何有效地在两个类之间共享数据?
- dialogflow-es - DialogFlow:旅行机器人出发和返回日期问题