Actualice varias tablas con una consulta en MySQL

Rashmi Patidar 13 junio 2022
  1. Ventajas de actualizar varias tablas con una consulta en MySQL
  2. Use la palabra clave UPDATE para actualizar varias tablas con una consulta en MySQL
Actualice varias tablas con una consulta en MySQL

Puede haber casos en los que un usuario desee realizar actualizaciones simultáneas en la tabla lógicamente relacionada. Estas tablas relacionadas lógicamente se vinculan entre sí a través de algunos atributos.

Ventajas de actualizar varias tablas con una consulta en MySQL

Se utilizan atributos similares dentro de las tablas para crear una consulta de actualización. La consulta de actualización realiza varias actualizaciones de filas en diferentes tablas según las condiciones.

Las consultas de actualización de tablas múltiples se ajustan cuando surge una situación similar. Los beneficios de usar esta consulta de actualización de tablas múltiples son:

  1. Esto conduce a actualizaciones en filas a la vez en lugar de realizar actualizaciones individuales en cada tabla.
  2. Esto también reduce el tiempo total para actualizar entradas en diferentes tablas.
  3. Esto reduce las posibilidades de actualizaciones inconsistentes en las tablas.
  4. Respuesta similar de todas las mesas en un momento dado.

Use la palabra clave UPDATE para actualizar varias tablas con una consulta en MySQL

En la consulta de actualización de varias tablas, se actualiza cada registro que cumple una condición. Incluso si los criterios coinciden varias veces, la fila se actualiza solo una vez.

La sintaxis de actualizar varias tablas no se puede utilizar con las palabras clave ORDER BY y LIMIT.

La sintaxis de la palabra clave UPDATE:

UPDATE table1, table2, ...
    SET column1 = value1,
        column2 = value2,
        ...
[WHERE conditions]

Actualización múltiple no es una palabra clave combinada presente en el lenguaje MySQL. La sintaxis se forma por la combinación de varias palabras clave que ayudan en la agrupación de dos o más tablas, como la palabra clave join.

Los tipos de combinaciones se utilizan para realizar una sola consulta para actualizar más de una tabla a la vez. Entendamos esto actualizando varias tablas a la vez.

Considere dos tablas llamadas library y stu_book. Y considere el caso en el que la biblioteca entrega un libro a un estudiante.

El conteo de libros en la biblioteca disminuye, mientras que el conteo de libros con estudiantes aumenta. Y ese es el escenario donde se requieren dos llamadas separadas.

Para evitar actualizaciones separadas en una tabla RDBMS, actualizamos las filas en dos tablas con una sola consulta. A continuación se muestra la lista de sentencias que se ejecutarán antes de la llamada de actualización.

Lista de consultas antes de la consulta real en las tablas:

  • Cree dos entidades llamadas biblioteca y stu_book.
  • El esquema para los dos se comparte a continuación:

    esquema de tablas library y stu_book

  • Inserte algunos valores comunes en tablas individualmente, como se muestra a continuación.

    registros insertados en las tablas para mostrar el escenario

  • Intente implementar el caso de uso haciendo aumentos o disminuciones simultáneas en ambas tablas.

    múltiples actualizaciones en dos tablas a la vez usando una sola consulta

Consulta para ejecutar la instrucción MySQL:

UPDATE library l, stu_book s
    SET l.book_count = l.book_count - 2,
        s.book_count = s.book_count + 2
WHERE l.id = s.book_id;

En la consulta anterior, internamente, la combinación interna combina las dos tablas y opera en la tabla combinada después de verificar las restricciones en las tablas. Cuando no se especifica ninguna palabra clave, se aplica la unión interna.

Combinaciones como combinación externa, la combinación externa derecha, el usuario debe usar la palabra clave correcta. La unión solo se puede realizar en los casos en que las dos tablas que se agrupan tienen un atributo similar/coincidente.

La palabra clave SET se usa junto con la palabra clave UPDATE para establecer los nuevos valores en las filas existentes. Anula los valores anteriores al escribir nuevos datos sobre él.

Aquí, el conjunto actualiza el recuento de libros de la tabla stu_book, y el mismo número de recuentos se reduce del recuento de libros de la biblioteca.

El recuento no se actualiza para todas las filas de ambas tablas. En cambio, la restricción se mantiene mediante la palabra clave WHERE.

La palabra clave WHERE hace la filtración real de filas. La palabra clave filtra la fila después de verificar las condiciones en las tablas.

Aquí, esta palabra clave dice que library_id debe coincidir con book_id de la tabla stu_book.

La salida mostrará el resultado del número total de filas afectadas en ambas tablas. A continuación se muestra el resultado que confirma el número de filas afectadas.

Query OK, 2 rows affected (0.02 sec)
Rows matched: 2  Changed: 2  Warnings: 0

A continuación se muestra el resultado final de la consulta anterior en el entorno de ejecución local o en el símbolo del sistema.

Captura de pantalla de ejecución local:

salida después de que se activa la actualización

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artículo relacionado - MySQL Table