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
439 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 :

<code class="language-sql">Table 1:
id | name | description
-----------------------
1   | a     | abc
2   | b     | def
3   | c     | adf</code>
Copier après la connexion
<code class="language-sql">Table 2:
id | name | description
-----------------------
1   | x     | 123
2   | y     | 345</code>
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 :

<code class="language-sql">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 );</code>
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 :

<code class="language-sql">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;</code>
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!

source:php.cn
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