mysql Получение того же значения auto_increment в другое - PullRequest
0 голосов
/ 28 ноября 2010

Это может быть действительно простой ответ. Я сделал много вещей с базой данных некоторое время. Я пытаюсь получить значение 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)
);

Теперь я хочу вставить значения в таблицу, но я бы хотел, чтобы значения 'id' для table_a и table_b были одинаковыми. Пока у меня есть:

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

Но я не знаю, как можно извлечь число auto_incermented 'id' из table_a в значение 'id' table_b. Я посмотрел на SELECT @id = LAST_INSERT_ID (), но не могу заставить его работать.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2010

LAST_INSERT_ID () и нет необходимости в части оператора select.

0 голосов
/ 28 ноября 2010

Вы не можете сделать это сразу.Сначала нужно вставить в первую таблицу:

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

, а затем вставить во вторую, используя сгенерированный идентификатор:

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