mysql防止删除正在使用的记录

标签 mysql

我有两张 table 。 Product 和 order_items 包含所有已购买的产品。

那么我如何在mysql中创建一个关系,如果order_items中存在产品,则限制用户从产品表中删除它?

谢谢

最佳答案

您可以使用 InnoDB 引擎的外键来完成此操作。

ALTER TABLE order_items ADD FOREIGN KEY (`p_id`) REFERENCES `products` (`p_id`);

产品上的 ID 必须是键(它可能已经是主键)。

如果您没有使用 InnoDB,则无法使用 MySQL 强制执行此操作,但必须使用您的应用程序执行此操作(例如,首先检查订单中是否存在记录)。

因此,对于您的表,您可以运行:

ALTER TABLE `order_item` ADD FOREIGN KEY (`bookid`) REFERENCES `book` (`id`);

关于mysql防止删除正在使用的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3899230/

相关文章:

Jquery 上传图像插件 ex。上传

MySQL:根据 ORDER BY 更新 "sort"列

c# - EntityFramework 和 MySQL 与 LINQ

php - 如何在mysql中进行多表选择中的文本搜索

mysql - 检索一个表的相同列以获取另一个表中的 2 个不同列

php - 如果登录时间大于表中的1,如何计算总工作时间

java - 准备语句的 SQL 语法错误?

mysql - 在多个表中搜索相同的值并获取结果来自的表

mysql - SQL语句数据库

Mysql根据EXISTS从一张表中插入列和数据