Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Instrução de seleção de inserção de várias linhas do MySQL com last_insert_id ()


Para a última consulta, use este
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;

O LAST_INSERT_ID() no MySQL é o PRIMEIRO id criado em um lote, ao contrário de SCOPE_IDENTITY() no SQL Server que é o ÚLTIMO id. Como é o primeiro, incrementamos cada linha usando a variável @rn, começando em addition=0 para a primeira linha.