La declaración REPLACE en MySQL es una extensión del estándar SQL. Esta instrucción funciona igual que la instrucción INSERT, excepto que si una fila anterior coincide con el nuevo registro en la tabla para una CLAVE PRIMARIA o un índice ÚNICO, este comando elimina la fila anterior antes de agregar la nueva fila.
Esta declaración es necesaria cuando queremos actualizar los registros existentes en la tabla para mantenerlos actualizados. Si utilizamos la consulta de inserción estándar para este propósito, dará una entrada duplicada para CLAVE PRIMARIA o un error de clave ÚNICA. En este caso, usaremos la declaración REPLACE para realizar nuestra tarea. El comando REPLACE requiere uno de los dos posible se llevan a cabo acciones:
- Si no se encuentra ningún valor coincidente con la fila de datos existente, se realiza una instrucción INSERT estándar.
- Si se encuentra el registro duplicado, el comando reemplazar eliminará la fila existente y luego agregará el nuevo registro en la tabla.
En la declaración REPLACE, la actualización se realizó en dos pasos. Primero, eliminará el registro existente y luego se agregará el registro recién actualizado, similar a un comando INSERT estándar. Por tanto, podemos decir que la declaración REPLACE realiza dos funciones estándar, BORRAR y INSERTAR .
Sintaxis
tabla de verdad del sumador completo
La siguiente es la sintaxis de REEMPLAZAR declaración en mysql :
REPLACE [INTO] table_name(column_list) VALUES(value_list);
MySQL REEMPLAZAR Ejemplo
Entendamos el funcionamiento de la declaración REPLACE en MySQL con la ayuda de un ejemplo. Primero, vamos a crear una tabla llamada 'Persona' usando la siguiente declaración:
Cómo conseguir una paloma de caza en Android.
CREATE TABLE Person ( ID int AUTO_INCREMENT PRIMARY KEY, Name varchar(45) DEFAULT NULL, Email varchar(45) DEFAULT NULL UNIQUE, City varchar(25) DEFAULT NULL );
A continuación, debemos completar el registro en la tabla usando el INSERTAR declaración como sigue:
INSERT INTO Person(ID, Name, Email, City) VALUES (1,'Mike', '[email protected]', 'California'), (2, 'Alexandar', '[email protected]', 'New York'), (3, 'Adam', '[email protected]', 'Los Angeles'), (4, 'Peter', '[email protected]', 'Alaska');
Ejecute el SELECCIONAR declaración para verificar los registros que se pueden mostrar en el siguiente resultado:
Después de verificar los datos en una tabla, podemos reemplazar cualquier fila anterior con la nueva fila usando la instrucción REPLACE. Ejecute la siguiente declaración que actualiza el ciudad de una persona cuyo id es 4 .
REPLACE INTO Person (id, city) VALUES(4,'Amsterdam');
Después de la ejecución exitosa de la declaración anterior, es necesario consultar los datos de la tabla Persona nuevamente para verificar el reemplazo.
trimestres en el año
El valor en el nombre y correo electrónico las columnas son NULO ahora. Esto se debe a que la declaración REPLACE funciona de la siguiente manera:
- Esta declaración primero intenta insertar una nueva fila en la tabla Persona. Pero la inserción de una nueva fila falla porque el id = 4 ya existe en la tabla.
- Entonces, esta declaración primero elimina la fila cuyo id = 4 y luego inserta una nueva fila con el mismo id y ciudad que Amsterdam. Como no hemos especificado el valor para la columna de nombre y correo electrónico, se estableció en NULL.
Declaración MySQL REPLACE para actualizar una fila
Podemos usar la siguiente instrucción REPLACE para actualizar los datos de una fila en una tabla:
REPLACE INTO table SET column1 = value1, column2 = value2;
La sintaxis anterior es similar a la ACTUALIZAR declaración excepto la palabra clave REPLACE. Cabe señalar que no podemos utilizar la cláusula WHERE con esta declaración.
Ejecute el siguiente ejemplo que utiliza la declaración REPLACE para actualizar la ciudad de la persona nombrada Miguel de California a Birmingham .
REPLACE INTO Person SET ID = 1, Name = 'Mike', City = 'Birmingham';
Después de la verificación de la tabla, podemos ver el siguiente resultado:
Si no hemos especificado el valor de la columna en el cláusula SET , este comando funciona como el ACTUALIZAR declaración , lo que significa que la instrucción REPLACE utilizará el valor predeterminado de esa columna.
MySQL REPLACE para insertar datos de la instrucción SELECT.
Podemos usar la siguiente instrucción REPLACE INTO para insertar datos en una tabla con los datos devueltos por una consulta.
REPLACE INTO table1(column_list) SELECT column_list FROM table2 WHERE condition;
Cabe señalar que la consulta REEMPLAZAR anterior es similar a la INSERTAR EN SELECCIONAR declaración. Ejecute el siguiente ejemplo que utiliza la instrucción REPLACE INTO para copiar una fila dentro de la misma tabla.
actualizar en sql con join
REPLACE INTO Person(Name, City) SELECT Name, City FROM Person WHERE id = 2;
Después de la verificación de la tabla, obtendremos el siguiente resultado. En este resultado, podemos ver que la copia de una fila dentro de la misma tabla se agregó correctamente.