【问题标题】:how to insert child table first, then parent table in mysql如何在mysql中先插入子表,然后插入父表
【发布时间】:2021-06-08 01:33:05
【问题描述】:

我尝试先插入 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,再填transaction表,则两个表的id_transactions匹配

【问题讨论】:

  • 你为什么要那样做?插入子表后插入父表。
  • 引用完整性的原因之一是防止这样的编程错误。

标签: mysql foreign-keys sql-insert


【解决方案1】:

你不能在 MySQL 中这样做。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多