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

MySQL Dupliquer les lignes

Je lancerais un curseur (avec le langage de programmation MySQL SP, Java, Python, .NET) sur cette requête :

select Name, Firstname, Lastname, count(1)
  from Pruebas
 group by Name, Firstname, Lastname
having count(1) > 1

Ensuite, sur les lignes renvoyées par le curseur, faites simplement ce dont vous avez besoin :recherchez l'instance FIN%, vérifiez la présence de PersonalKey et mettez à jour en conséquence.

Pour chaque ligne du curseur, vous pouvez ouvrir un curseur différent avec :

select *
  from Pruebas
 where Name = the_Name
   and Firstname = the_Firstname
   and Lastname = the_Lastname

Et maintenant, vous aurez un curseur intérieur avec toutes les lignes que vous modifierez. Si c'est celui dont vous avez besoin, conservez-le et mettez-le à jour avec la valeur KEY que vous avez mentionnée. Sinon, supprimez-le.

Dans Oracle, vous pouvez accomplir ce que vous voulez en une seule requête, mais je ne pense pas que vous obtiendrez ainsi les mêmes performances qu'avec cette approche.

J'espère que ça aide.