我有两张 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/