Я хочу превратить вставку в 2 таблицы
посещения:
visit_id int | card_id int
регистрация:
registration_id int | type enum('in','out') | timestamp int | visit_id int
Я хочу что-то как:
INSERT INTO `visits` as v ,`registration` as v
(v.`visit_id`,v.`card_id`,r.`registration_id`, r.`type`, r.`timestamp`, r.`visit_id`)
VALUES (NULL, 12131141,NULL, UNIX_TIMESTAMP(), v.`visit_id`);
Интересно если его возможное
Похоже, проблема, которую вы пытаетесь решить, состоит в том, чтобы получить значение автоинкремента из строки «посещения» для вставки в «регистрацию». Я прав?
Если да, вы можете просто использовать функцию LAST_INSERT_ID () следующим образом:
INSERT INTO `visits` (`visit_id`,`card_id`)
VALUES (NULL, 12131141);
INSERT INTO `registration` (`registration_id`, `type`, `timestamp`, `visit_id`)
VALUES (NULL, 'in', UNIX_TIMESTAMP(), LAST_INSERT_ID());
Это невозможно с одним запросом, поскольку INSERT
может вставлять данные только в одну таблицу в mysql. Вы можете
Вы можете заключить эти вставки в транзакцию, если вам нужно убедиться, что оба запроса будут напишите данные.