【发布时间】:2009-10-02 11:31:46
【问题描述】:
我正在使用 INSERT .. SELECT 从表中“复制”行(使用不同的外键)。
这很好用,但是它插入了多行,我现在需要执行另一个 INSERT 来插入多行,这些行链接到前一个 SELECT 中的每个单独的行...这是否有意义?哈哈。
table1 和 table2 之间基本上是一对多的关系。 table1 和 table3 之间存在一对一的关系。我正在将 table1 中的行(及其相关的链接 table2 行)“分配”到 table3 上的新行(我有这个 mysql_insert_id)。我试图用尽可能少的查询来做到这一点。
我举个例子,
您有一个products 表、options 表和一个option_items 表。每个option 有多个option_items,每个product 可以有多个options 应用于它。
Product1 应用了选项 Colour,Colour 应用了 Blue 和 Green,Product1 还应用了 Size 选项,其中应用了 @987654335 @ 和 Large。
我希望使用新 ID 复制产品,这意味着复制 options 和 option_items 表中的行并重新创建它们相关的外键。
我已经创建了新产品并拥有 productid。
现在我需要复制选项获取新option的ID,复制项目并将新创建的option的ID分配给items(维护选项与项目的关系)。
任何帮助将不胜感激!
【问题讨论】:
-
不,没有意义。请编辑并提供一些示例数据。
-
我添加了一个示例,希望能有所帮助。
-
请添加表 DDL 和示例查询(到目前为止您已经能够弄清楚的那些),以便我们可以可视化您正在尝试做什么。否则很难回答。