【问题标题】:MySQL: Insert multiple rows with same AI valueMySQL:插入具有相同 AI 值的多行
【发布时间】:2013-01-10 12:12:48
【问题描述】:

假设这是我的桌子:

CREATE TABLE tab (
    id INT AUTO_INCREMENT NOT NULL,
    val VARCHAR(9),
    KEY(id),
    PRIMARY KEY (xx)
);

是否可以同时插入多行以使它们都获得相同的自动增量值?

以下方法有效,但会增加每个新行,而不管我们正在执行单个查询。

INSERT INTO tab (id,val) VALUES (LAST_INSERT_ID(),'a'), (LAST_INSERT_ID(),'b');

我怎样才能确保他们都在单个查询中收到相同的自动递增 ID?

【问题讨论】:

  • 那种破坏了 auto_increment 的全部意义!如果您希望行共享一个公共 id,则使用自动递增 id 以外的东西来存储它。请注意,对于 MyISAM 引擎,任何自动增量只需要成为 PK 的一个组件。

标签: mysql innodb auto-increment


【解决方案1】:

您需要将第一个 AI 值保留在变量中,并将其传递给不同对的 INSERT 查询

【讨论】:

  • 是的,我是这么认为的。那绝对没有别的办法了?
猜你喜欢
  • 2022-08-03
  • 1970-01-01
  • 2023-01-02
  • 1970-01-01
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
  • 1970-01-01
  • 2012-01-20
相关资源
最近更新 更多