Получить идентификатор одной таблицы MySQL и вставить его в другую таблицу - PullRequest
1 голос
/ 08 февраля 2012

Моя база данных - MySQL. Мне нужно получить идентификатор в одной из таблиц и вставить его в другую таблицу, используя vb.net через odbc. Можете ли вы мне помочь, пожалуйста,

Ответы [ 2 ]

1 голос
/ 08 февраля 2012
INSERT INTO t2 (t1_id) SELECT id FROM t1

При необходимости добавьте условие к выбору

Чтобы получить последний идентификатор, используя этот запрос, при условии AUTO_INCREMENT:

INSERT INTO t2 (t1_id) SELECT id FROM t1 ORDER BY id DESC LIMIT 1

Чтобы получить последний идентификатор, используя этот запрос, предполагая, что естьзапись метки времени (например, созданная):

INSERT INTO t2 (t1_id) SELECT id FROM t1 ORDER BY created DESC LIMIT 1

Согласно комментарию от ypercube, если вы:

  • выполняете одну вставку с тем же соединением и,
  • не использует постоянные соединения и
  • не использует пул соединений

, тогда вы можете использовать LAST_INSERT_ID ().

Если вы :

  • , используя постоянные соединения, или
  • , используя пул соединений, или
  • , вставляя несколько строксразу

, тогда один из вышеперечисленных вариантов лучше

1 голос
/ 08 февраля 2012

для сервера Sql

SELECT IDENT_CURRENT('tablename')

Для м.кв.

INSERT INTO foo (auto,text)
    VALUES(NULL,'text');         # generate ID by inserting NULL
INSERT INTO foo2 (id,text)
    VALUES(LAST_INSERT_ID(),'text');  # use ID in second table

MySQL будет иметь функцию LAST_INSERT_ID():

SELECT LAST_INSERT_ID();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...