PHP y MySQL

MYSQL REPLACE INTO: reemplazar y actualizar filas de una tabla

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:

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:

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).

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:

CREATE TABLE IF NOT EXISTS coches(
 matricula VARCHAR(25) NOT NULL PRIMARY KEY,
 marca VARCHAR(100) NOT NULL,
 modelo VARCHAR(100) NOT NULL
);
compartir
Publicado por
Aner Barrena