代码之家  ›  专栏  ›  技术社区  ›  Anonymous

插入相互依赖的两行的最有效方法

  •  0
  • Anonymous  · 技术社区  · 15 年前

    我有一个网站,基本上是一个链接的集合。存储用户、链接和投票的MySQL数据库。我的链接表有两个外键,用户ID和投票ID。当链接插入到数据库中时,它将以一个投票开始,这意味着我需要在投票表中插入一行,但它们本质上是相互依赖的。我需要投票表的外键的链接ID,反之亦然。我当前的“计划”是插入投票ID为0的链接行,选择同一行获取其ID,然后使用链接行ID作为外键插入投票行,选择其ID并更新原始链接行。这看起来效率很低,但我需要确保记录用户的投票以保持时间并消除重复的投票。我是不是走错了路?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Andomar    15 年前

    在PHP中,您可以使用 mysql_insert_id :

    mysql_query("INSERT INTO mytable (product) values ('kossu')");
    printf("Last inserted record has id %d\n", mysql_insert_id());
    

    您可以使用它来获取新插入链接的行ID。

    假设一个投票只能属于一个链接,则链接表不应有投票ID列。所以您不需要新插入的投票的标识。