J'ai une table A a une colonne (id, field_1, field_2), et une autre table B a une colonne (id, field_2)
Maintenant, je veux fusionner la table B en A, cela signifie que je veux mettre à jour field_2 dans la table A à la valeur de la table B. Alors, comment implémenter cela? BTW j'utilise oracle
Merci
Réponses:
Une approche alternative à la sous-requête associée (suggérée par Kerri) serait d'utiliser l'instruction MERGE, qui pourrait être plus efficace que la sous-sélection (qui ne peut être vérifiée qu'en regardant le plan d'exécution des deux instructions).
la source
MERGE
instruction est que vous ne pouvez pas mettre à jour la colonne sur laquelle elle est jointe, c'est-à-dire que vous ne pouvez pas mettre à jour la colonne utilisée dans laON
clause.ORA-01555: snapshot too old
Vous ne savez pas exactement ce que vous recherchez sur celui-ci, mais cela devrait fonctionner de manière ponctuelle ou continue via un travail planifié:
Maintenant, chaque fois que ce qui précède est exécuté, il le fera sur toutes les lignes du tableau. Si c'est quelque chose que vous devez faire tout le temps, je suggérerais autre chose, mais pour des tables uniques ou très petites, cela devrait être suffisant.
la source
J'ai fait cela avec succès en utilisant une table dans user1 à partir d'une autre table dans user2:
la source
Vous pouvez créer un déclencheur sur tableB qui met à jour tableA à chaque mise à jour de field_2 sur tableB. Vérifiez ici pour plus d'informations sur la création de déclencheurs - http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm#BABCIBBJ
la source