REPLACE INTO funciona semánticamente como una operación combinada de DELETE e INSERT: sobrescribe una fila existente cuando la clave principal coincide, o inserta una nueva fila si no encuentra ninguna coincidencia.
Sintaxis
REPLACE INTO table_name [(column_name,...)] VALUES ({Constant|NULL|DEFAULT},...),(...),...
Parámetros
|
Parámetro |
Descripción |
||
|
|
La tabla de destino. |
||
|
|
(Opcional) Las columnas que se van a rellenar. Omítalas para insertar valores en todas las columnas según su orden definido. |
||
|
|
NULL |
DEFAULT` |
El valor para cada columna: una constante literal, |
La clave principal puede ser de una sola columna o una clave principal compuesta que abarque varias columnas.
Funcionamiento
Al ejecutar REPLACE INTO, el sistema comprueba si ya existe una fila con la misma clave principal:
La fila existe: el sistema elimina la fila existente e inserta la nueva.
La fila no existe: el sistema inserta la fila directamente.
Ejemplos
Inserción de una sola fila con nombres de columna
REPLACE INTO customer(customer_id,customer_name,phone_num,city_name,sex,id_number,home_address,office_address,age,login_time)
VALUES
(002367,'Bob','13900001234','Hangzhou',0,'987300','WestLake','CloudTown',23,'2018-03-02 10:00:00');
Inserción de varias filas sin nombres de columna
Omita la lista de columnas cuando proporcione valores para todas las columnas en su orden definido.
REPLACE INTO customer VALUES
(002367,'John','13900001111','Hangzhou',0,'987300','WestLake','CloudTown',23,'2018-03-02 10:00:00'),
(002368,'Adam','13900002222','Hangzhou',0,'987300','WestLake','CloudTown',28,'2018-08-01 11:00:00'),
(002369,'Brook','13900003333','Hangzhou',1,'987300','WestLake','CloudTown',35,'2018-09-12 08:11:00');