MySQL вставить в две таблицы ID с первого

мне нужно вставить некоторые данные в таблицу «компании» со столбцами:
company_id | название компании

и в то же время (из той же формы) в другую таблицу contact_persons:
имя_контакта | Идентификатор компании

где company_id должен быть значением из таблицы ‘companies’, где company_id — это PK и AI.
Можно ли сделать это в ОДНОМ одном шаге вместо того, чтобы вставлять сначала company_name, а затем читать таблицу ‘companies’ и извлекать ‘company_id’, чтобы вставить ее во вторую таблицу (‘contact_persons’)?

Я не уверен, что это возможно, но это было бы гораздо более элегантно и эффективно …
Заранее спасибо.

2

Решение

Вы можете сделать это с помощью LAST_INSERT_ID() чтобы получить последний идентификатор автоинкремента из Companies таблица и вставка того же в другую таблицу. что-то вроде

INSERT INTO companies (company_name) VALUES ('test');
SET @last_id_companies = LAST_INSERT_ID();
INSERT INTO contact_persons (contact_name, company_id)
VALUES ('test', @last_id_companies);
3

Другие решения

Не в одном операторе, а в одной транзакции, поэтому они выполняются одновременно и откатываются.

START TRANSACTION;
--Your statements here
COMMIT;
0