Мне нужно вставить строку в 2 таблицы с соответствующими идентификаторами. При вставке в таблицу групп идентификатор автоматически увеличивается.
Я хочу вставить новую строку в таблицу «группы», получить идентификатор из вставленной строки, а затем использовать его для вставки новой строки в таблицу «users_in_groups».
Что я имею:
INSERT INTO groups (name, owner_id ) VALUES ('groupname1', 'userid1');
INSERT INTO users_in_groups (user_id, group_id) VALUES ('userid1', group_id_from_above);
Я старался
INSERT INTO groups (name, owner_id ) OUTPUT Inserted.id VALUES ('group1', 'user1');
Но я не знаю, как заставить работать 2 «вставки» на 1 запрос. Это вообще возможно?
1 ответ
В MySQL вы можете использовать LAST_INSERT_ID()
:
INSERT INTO groups (name, owner_id ) VALUES ('groupname1', 'userid1');
INSERT INTO users_in_groups (user_id, group_id) VALUES ('userid1', LAST_INSERT_ID());
users_in_groups
идентификатор, сгенерированный при вставке в groups
- так я понял ваш вопрос.
Похожие вопросы
Новые вопросы
mysql
MySQL — это бесплатная система управления реляционными базами данных (RDBMS) с открытым исходным кодом, которая использует язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. д. Это разные БД, которые используют свои собственные диалекты SQL для управления данными. В вопросе всегда указывайте точную версию сервера. Версии 5.x сильно отличаются по своим возможностям от версий 8+.
OUTPUT
соответствует SQL Server.