【问题标题】:mysql Getting the same auto_increment value into anothermysql获取相同的auto_increment值到另一个
【发布时间】:2011-05-16 21:31:04
【问题描述】:

这可能有一个非常简单的答案。我已经做了很多数据库的东西了。我正在尝试从一个表中获取 auto_increment 值,并将其插入到另一张表上的值中。有没有一种简单的方法可以做到这一点。例如,我已经完成了:

CREATE TABLE table_a (
id int NOT NULL AUTO_INCREMENT,
a_value  varchar(4),
PRIMARY KEY (id)
);

CREATE TABLE table_b (
id int NOT NULL,
b_value varchar(15),
FOREIGN KEY (id) REFERENCES table_a (id)
);

现在我想将值插入表中,但我希望 table_a 和 table_b 的“id”值相同。到目前为止,我有:

INSERT INTO table_a VALUES (NULL, 'foobar');

但我不知道如何从 table_a 中提取 auto_incermented 'id' 数字到 table_b 的 'id' 值中。我查看了 SELECT @id = LAST_INSERT_ID() 但无法正常工作。

【问题讨论】:

    标签: mysql insert foreign-keys auto-increment


    【解决方案1】:

    LAST_INSERT_ID() 并且不需要选择语句部分。

    【讨论】:

      【解决方案2】:

      您不能立即这样做。您必须先插入第一个表:

      INSERT INTO table_a (a_value) VALUES ('foobar');
      

      然后使用生成的 id 插入第二个:

      INSERT INTO table_b (id, b_value) VALUES (@@IDENTITY, 'foobar');
      

      【讨论】:

      • 我发现@identity 不起作用但确实提供了线索并且能够找到答案。
      猜你喜欢
      • 2012-05-31
      • 2017-11-09
      • 1970-01-01
      • 2016-11-14
      • 2021-11-05
      • 2015-10-14
      • 2015-11-18
      • 2011-10-20
      • 1970-01-01
      相关资源
      最近更新 更多