如何在mysql中先插入子表,然后插入父表

问题描述

我尝试先插入transactions_detail,然后在transactions表中获取total_cost。

transactions_detail
detail_id,product_id,transactions_id,product_quantity
transactions
transactions_id,user_id,total_price,transactions_date

如何让transactions_detail表插入时,先id_transactions为null,然后如果事务表被填充,则两个表之间的id_transactions匹配

解决方法

您不能在 MySQL 中执行此操作。

要暂时打破引用约束,您需要数据库引擎实现“可延迟约束”,不幸的是 MySQL 没有实现这个标准 SQL 功能

您需要将数据库引擎切换到 PostgreSQL 或 Oracle 才能执行此操作。

在任何情况下,约束只能在交易期间无效。在交易中发出 COMMIT 的那一刻,所有约束都必须有效。这似乎是您的用例。