Mysql insert into 2 tables

insert, mysql

Solution

It's not possible with one query as `INSERT` can only insert data to one table in mysql. You can either

- write this as two queries and execute them as a batch

- create a stored procedure that would execute two insert command

You can wrap those inserts in transaction if you need to make sure that both queries will write the data.

Problem

I want to make a insert into 2 tables visits: ``` visit_id int | card_id int ``` registration: ``` registration_id int | type enum('in','out') | timestamp int | visit_id int ``` I want something like: ``` 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`); ``` I wonder if its possible

Original source