Maison > base de données > tutoriel mysql > Comment puis-je mettre à jour une table Oracle avec les données d'une autre à l'aide de SQL ?

Comment puis-je mettre à jour une table Oracle avec les données d'une autre à l'aide de SQL ?

Linda Hamilton
Libérer: 2025-01-22 02:41:14
original
505 Les gens l'ont consulté

How Can I Update an Oracle Table with Data from Another Using SQL?

Utiliser SQL pour mettre à jour une table Oracle avec les données d'une autre

Oracle SQL propose des méthodes efficaces pour mettre à jour une table avec les données d'une autre. Ceci peut être réalisé en utilisant des mises à jour corrélées ou une syntaxe alternative.

Illustrons avec des exemples de tableaux :

Table 1:
id | name | description
-----------------------
1   | a     | abc
2   | b     | def
3   | c     | adf
Copier après la connexion
Table 2:
id | name | description
-----------------------
1   | x     | 123
2   | y     | 345
Copier après la connexion

Méthode 1 : mise à jour des sous-requêtes corrélées

Cette approche utilise une sous-requête corrélée pour récupérer les données correspondantes de Table 2 pour chaque ligne de Table 1 :

UPDATE table1 t1
SET (name, description) = (SELECT t2.name, t2.description
                         FROM table2 t2
                        WHERE t1.id = t2.id)
WHERE EXISTS (
    SELECT 1
      FROM table2 t2
     WHERE t1.id = t2.id );
Copier après la connexion

La clause WHERE EXISTS garantit que seules les lignes dont les ID correspondent dans les deux tables sont mises à jour.

Méthode 2 : Syntaxe alternative utilisant une sous-requête

Cette méthode utilise une sous-requête pour créer une vue temporaire combinant les deux tables, puis met à jour cette vue :

UPDATE (SELECT t1.id, 
               t1.name name1,
               t1.description desc1,
               t2.name name2,
               t2.description desc2
          FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id)
   SET name1 = name2,
       desc1 = desc2;
Copier après la connexion

Cette approche exploite un JOIN pour combiner efficacement les tables. La mise à jour modifie ensuite les colonnes sélectionnées (name1, desc1) en fonction des colonnes correspondantes de Table 2 (name2, desc2). La colonne id sert de clé de jointure, garantissant des mises à jour précises de Table 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal