Nueva entrada para repasar la sentencia de MySQL REPLACE INTO, su funcionalidad es la de reemplazar y/o sustituir las filas de la tabla cuando al insertar una fila su clave está duplicada (existe anteriormente).
Resumiendo podemos decir que, REPLACE es como un INSERT pero evitando duplicidades de claves únicas. Puede resultar cómo en determinados casos cuando queremos hacer inserciones incrementales en una tabla.
Otras cláusulas de MySQL son:
Sintaxis de MySQL REPLACE INTO
Veamos la sintaxis extraída de su web oficial:
1 |
REPLACE INTO nombre_tabla (columna1, columna2, ...) VALUES (valor1, valor2, ...); |
Como podéis ver la sintaxis es sencilla:
- Declaramos el nombre de la tabla donde vamos a realizar el REPLACE INTO.
- En dicho REPLACE ponemos las columnas a insertar/reemplazar.
- Para finalizar declaramos los valores a insertar en cada columna.
Ejemplos de MySQL REPLACE INTO
Veamos unos ejemplos de esta sentencia:
1 2 |
REPLACE INTO coches(matricula, marca, modelo) VALUES ("112233445566-FF", "Mercedes Benz", "Clase E"); |
Con el ejemplo superior estaríamos insertando un nuevo registro en la BBDD siempre y cuando la matrícula no existiera (Dando por hecho que la matricula es la clave única de la tabla).
1 2 3 4 5 6 7 |
INSERT INTO coches(matricula, marca, modelo) VALUES ("112233445566-FF", "Mercedes Benz", "Clase E"); //metemos la misma matricula REPLACE INTO coches(matricula, marca, modelo) VALUES ("112233445566-FF", "BMW", "Serie 3"); |
Con este nuevo ejemplo estamos primero insertando un coche con una determinada matrícula, en segundo lugar con el REPLACE estaríamos sustituyendo la anterior inserción ya que la matrícula (clave única) es la misma.
Os dejo la sintaxis de la tabla de coches de los ejemplos por si os resulta de utilidad:
1 2 3 4 5 |
CREATE TABLE IF NOT EXISTS coches( matricula VARCHAR(25) NOT NULL PRIMARY KEY, marca VARCHAR(100) NOT NULL, modelo VARCHAR(100) NOT NULL ); |