sql >> Database teknologi >  >> RDS >> Mysql

Mysql multiple row insert-select-sætning med last_insert_id()

Brug denne

til den sidste forespørgsel
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;

LAST_INSERT_ID() i MySQL er det FØRSTE id, der er oprettet i en batch, i modsætning til SCOPE_IDENTITY() i SQL Server, som er det SIDSTE id. Da det er den første, øger vi hver række ved hjælp af variablen @rn, startende ved addition=0 for den første række.



  1. Care To Know-klausuler:Alt om SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY og LIMIT

  2. Ser på Database Snapshot Performance

  3. Gemmer ændringer i SlickGrid med php

  4. SQL Server-databaser CPU-brugsstatistik