REPLACE SELECT FROM copie des enregistrements d'une table (ou d'une vue) vers une autre en temps réel. Pour chaque enregistrement, la commande vérifie si la clé primaire existe déjà dans la table cible. Si tel est le cas, elle supprime l'enregistrement existant et insère le nouveau. Sinon, elle insère directement l'enregistrement.
Fonctionnement
Pour chaque enregistrement copié, AnalyticDB for MySQL exécute les étapes suivantes :
Tentative d'insertion de l'enregistrement dans la table cible.
En cas de conflit de clé primaire, suppression de l'enregistrement conflictuel.
Insertion du nouvel enregistrement.
Cas d'utilisation de REPLACE SELECT FROM
Utilisez REPLACE SELECT FROM pour écraser des enregistrements existants selon les correspondances de clés primaires, par exemple afin d'actualiser une table récapitulative avec des données source mises à jour.
Syntaxe
REPLACE INTO table_name
[(column_name, ...)]
query;
Paramètres
| Paramètre | Description |
|---|---|
table_name |
Nom de la table cible. La table doit exister avant l'exécution de l'instruction. |
column_name |
(Facultatif) Colonnes dans lesquelles copier les données. Si vous les spécifiez, les colonnes de la clause SELECT doivent correspondre aux colonnes listées, dans le même ordre et avec des types de données compatibles. |
query |
Instruction SELECT FROM TABLE ou SELECT FROM VIEW définissant les enregistrements à copier. |
Prérequis
La table cible existe.
Exemple
Copiez trois colonnes de la table customer vers la table new_customer en écrasant tout enregistrement existant dont la clé primaire correspond.
REPLACE INTO new_customer (customer_id, customer_name, phone_num)
SELECT customer_id, customer_name, phone_num FROM customer
WHERE customer.customer_name = 'Alan';