Maison > base de données > tutoriel mysql > Comment transférer et supprimer efficacement des lignes SQL en fonction de critères de correspondance ?

Comment transférer et supprimer efficacement des lignes SQL en fonction de critères de correspondance ?

DDD
Libérer: 2024-12-16 18:09:16
original
262 Les gens l'ont consulté

How to Efficiently Transfer and Delete SQL Rows Based on Matching Criteria?

Transfert de données : déplacement de lignes d'une table SQL à une autre

Problème initial :

Les utilisateurs visent à transférer des données d'une table SQL à une autre en fonction de critères de correspondance spécifiques. Dans ce cas particulier, la requête nécessite de déplacer toutes les lignes du Tableau1 vers le Tableau2 qui satisfont aux conditions « nom d'utilisateur = 'X' » et « mot de passe = 'X' ». Ensuite, ces lignes doivent être supprimées du tableau 1.

Solution technique :

Pour exécuter efficacement cette migration de données, un processus en deux étapes peut être utilisé dans un seul SQL transaction. Cela implique une insertion initiale et une suppression ultérieure :

1

2

3

4

5

6

7

8

9

10

BEGIN TRANSACTION;

INSERT INTO Table2 (<columns>)

SELECT <columns>

FROM Table1

WHERE <condition>;

 

DELETE FROM Table1

WHERE <condition>;

 

COMMIT;

Copier après la connexion

Considérations supplémentaires :

Pour les cas où de nouveaux enregistrements correspondant aux critères spécifiés pourraient être ajoutés au tableau 1 entre le processus d'insertion et de suppression, une requête plus élaborée peut être utilisée :

1

2

3

4

5

6

7

8

9

10

BEGIN TRANSACTION;

INSERT INTO Table2 (<columns>)

SELECT <columns>

FROM Table1

WHERE <condition> AND NOT EXISTS (SELECT 1 FROM Table2 WHERE <condition>);

 

DELETE FROM Table1

WHERE <condition>;

 

COMMIT;

Copier après la connexion

Cet ajout garantit que seules les lignes correspondantes d'origine de Le tableau 1 est transféré au tableau 2 puis supprimé du tableau 1.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal