这可能有一个非常简单的答案。我已经做了很多数据库的东西了一段时间。我试图从一个表中获取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()但无法使其工作。
答案 0 :(得分:0)
你不能马上做到这一点。您必须先插入第一个表格:
INSERT INTO table_a (a_value) VALUES ('foobar');
然后使用生成的id插入第二个:
INSERT INTO table_b (id, b_value) VALUES (@@IDENTITY, 'foobar');
答案 1 :(得分:0)
LAST_INSERT_ID(),不需要select语句部分。