【问题标题】:Mysql use last inserted id in a different table query multiple times [duplicate]Mysql在不同的表查询中多次使用最后插入的ID [重复]
【发布时间】:2017-10-17 13:03:32
【问题描述】:

我正在处理一个要运行的查询,以根据操作导入一些短语。

这是我要插入数据的两个表。

actions:
 - id
 - name
 - data

phrases:
 - id
 - action_id
 - phrase

其中短语.action_id = actions.id

我想创建一个新动作。返回该 ID,然后使用返回的 ID 添加多个短语。

是否有办法使插入的 action.id 持久化或成为可重复使用的变量。

我的思路让我想到了这样的事情:

选择 LAST_INSERT_ID();

还有

OUTPUT insterted.id

不期待答案,但一些有用的信息会为我指明正确的方向会很棒

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可以将其分配给用户变量:

    INSERT INTO actions ...;
    SET @action_id = LAST_INSERT_ID();
    

    然后您可以在插入到phrases 的所有INSERT 查询中使用@action_id

    INSERT INTO phrases (action_id, phrase) VALUES (@action_id, "Whatever");
    INSERT INTO phrases (action_id, phrase) VALUES (@action_id, "Some other phrase");
    

    您也可以通过在单个查询中执行所有插入来解决它:

    INSERT INTO phrases (action_id, phrase) VALUES
        (LAST_INSERT_ID(), "Whatever"),
        (LAST_INSERT_ID(), "Some other phrase");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 2015-01-10
      相关资源
      最近更新 更多