Mysql插入2个表

Spi*_*ire 10 mysql insert

我想插入2个表

访问:

visit_id int | card_id int
Run Code Online (Sandbox Code Playgroud)

注册:

registration_id int | type enum('in','out') | timestamp int | visit_id  int
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

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`);
Run Code Online (Sandbox Code Playgroud)

我想知道它是否有可能

RaY*_*ell 11

一个查询是不可能的,因为INSERT只能将数据插入mysql中的一个表.你也可以

  1. 将其写为两个查询并作为批处理执行
  2. 创建一个执行两个insert命令的存储过程

如果需要确保两个查询都将写入数据,则可以将这些插入包装在事务中.


Ike*_*ker 8

您尝试解决的问题似乎是从"访问"行获取自动增量值以插入"注册".我对吗?

如果是这样,您可以像这样使用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());
Run Code Online (Sandbox Code Playgroud)