У меня есть вопрос MySQL, который я думаю, должно быть довольно легко. Мне нужно вернуть LAST INSERTED ID из таблицы 1, когда я запускаю следующий запрос MySql:
INSERT INTO table1 (title,userid) VALUES ('test',1);
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(),4,1);
SELECT LAST_INSERT_ID();
Как вы понимаете, текущий код будет просто возвращать идентификатор LAST INSERT для table2 вместо table1, как я могу получить идентификатор из table1, даже если я вставлю в table2 между ними?
mysql
insert
last-insert-id
Мартин
источник
источник
Поскольку вы фактически сохранили предыдущий LAST_INSERT_ID () во второй таблице, вы можете получить его оттуда:
источник
Это позволяет вставить строку в 2 разные таблицы и создать ссылку на обе таблицы.
источник
У меня была та же проблема в Bash, и я делаю что-то вроде этого:
который отлично работает :-) Но
не работает Потому что после первой команды оболочка выйдет из mysql и снова войдет для второй команды, и тогда переменная @last_insert_id больше не будет установлена. Мое решение:
Может быть, кто-то ищет решение bash :-)
источник
LAST_INSERT_ID
доступно только для активного соединения.#mysq
-команда подключения для каждой команды. Вы можете подключиться с помощьюmysql
команды к серверу и вставить свои запросы, или вы можете создать текстовый файл, и выmysql
команда с перенаправлением из TXT-файла akamysql [connection option] < txt.file
У нас есть только один человек, который вводит записи, поэтому я выполняю следующий запрос сразу после вставки:
Это извлекает последний идентификатор из базы данных.
источник
Для решения InnoDB нет: вы можете использовать процедуру
don't forgot to set the the delimiter for storing the procedure with ;
И вы можете использовать это ...
источник
Можно ли сохранить переменную last_id_in_table1 в переменную php, чтобы использовать ее позже?
С этим last_id мне нужно прикрепить некоторые записи в другую таблицу с этим last_id, поэтому мне нужно:
1) Сделайте INSERT и получите last_id_in_table1
2) Для любых неопределенных строк в другой таблице, ОБНОВИТЬ эти строки с помощью last_id_insert, сгенерированного во вставке.
источник
Вместо этого
LAST_INSERT_ID()
попробуйте использовать этотисточник
Для последнего и второго последнего:
источник
Просто чтобы добавить сообщение Родриго, вместо LAST_INSERT_ID () в запросе вы можете использовать SELECT MAX (id) FROM table1 ;, но вы должны использовать (),
источник
Если вам нужно иметь из mysql, после вашего запроса, последний автоинкрементный идентификатор без другого запроса, вставьте в ваш код:
источник