小编edl*_*edl的帖子

带有last_insert_id()的Mysql mulitple row insert-select语句

好.所以缺点是,我试图做一个INSERT SELECT,例如:

START TRANSACTION;  
INSERT INTO dbNEW.entity (commonName, surname)  
SELECT namefirst, namelast  
FROM dbOLD.user;  
SET @key = LAST_INSERT_ID();  
INSERT INTO dbNEW.user (userID, entityID, other)  
SELECT user_id, @key, other  
FROM dbOLD.user;  
COMMIT;
Run Code Online (Sandbox Code Playgroud)

当然@key不会从每个插入返回每个后续的LAST_INSERT_ID(),而只返回最后一个插入的ID.

基本上,我将旧的USER表拆分为ENTITY和USER,如:

 dbOLD.user
 +-------------+---------------------+------+-----+------------+----------------+
 | Field       | Type                | Null | Key | Default    | Extra          |
 +-------------+---------------------+------+-----+------------+----------------+
 | user_id     | int(10) unsigned    | NO   | PRI | NULL       | auto_increment |
 | namefirst   | varchar(20)         | NO   |     |            |                |
 | namelast    | varchar(20)         | NO   | …
Run Code Online (Sandbox Code Playgroud)

mysql sql lastinsertid

6
推荐指数
1
解决办法
5306
查看次数

标签 统计

lastinsertid ×1

mysql ×1

sql ×1