Cómo hacer UPSERT (INSERT y UPDATE) en MySQL

Un profesor de SocraTech explica cómo hacer UPSERT (INSERT y UPDATE) en una solo sentencia en dentro de una base de datos de MySQL

Al trabajar con Bases de Datos de MySQL existen formas de ahorrar código a la hora de realizar sentencias. Una de ellas es poder hacer en una única sentencia INSERT y UPDATE, lo que es también conocido como UPSERT.

En el vídeo que encontrarás a continuación, nuestro profesor del bootcamp, Carlos Yáñez, enseña cómo funciona con un ejemplo en el que actualiza el precio de unas zapatillas en una base de datos.

Aceptar el consentimiento para ver esto

Como puedes ver en el vídeo, lo primero es crear una base de datos de prueba utilizando el siguiente código:

Código para iniciar una Base de Datos de prueba - SocraTech

Dentro de esta base de datos hay que crear una tabla llamada «product», utilizando el siguiente código:

Código para introducir un producto en una Base de Datos de prueba - SocraTech

Finalmente, el código que se utiliza para que la sentencia haga un UPSERT en la base de datos de MySQL es el siguiente:

Código para hacer un UPSERT en Base de Datos MySQL - SocraTech

Al ejecutar la sentencia, como no había ningún producto anteriormente, tan solo se ha añadido la información del producto que se ha insertado a la base de datos. Sin embargo, al utilizar la misma sentencia para ese mismo producto pero modificando, por ejemplo, el precio, la cosa cambia:

Código para hacer un segundo UPSERT en Base de Datos MySQL - SocraTech

Como resultado, el precio se actualiza en el producto insertado anteriormente, siendo ahora de 150,99.

Esto ahorra mucho código dentro de un proyecto, ya que en una misma sentencia se lleva a cabo un UPSERT, es decir, un INSERT y un UPDATE.

Si quieres aprender más sobre bases de datos, MySQL y el desarrollo de software en general, échale un vistazo a nuestro Bootcamp Full Stack Web Developer y aprende todo lo que necesitas para empezar a trabajar en el sector tecnológico.

Otros posts relacionados...