Mysql
 sql >> Base de données >  >> RDS >> Mysql

Instruction d'insertion-sélection de plusieurs lignes Mysql avec last_insert_id ()

Pour la dernière requête, utilisez ceci

INSERT INTO dbNEW.`user` (userID, entityID, other)  
SELECT user_id, entityID, other
FROM
(
    SELECT user_id, @key + @rn entityID, other, @rn := @rn + 1
    FROM (select @rn:=0) x, dbOLD.`user`
    order by user_id
) y;

Le LAST_INSERT_ID() dans MySQL est le PREMIER identifiant créé dans un lot, contrairement à SCOPE_IDENTITY() dans SQL Server qui est le DERNIER identifiant. Puisqu'il s'agit de la première, nous incrémentons chaque ligne à l'aide de la variable @rn, en commençant par addition=0 pour la première ligne.