MySQL MariaDB

MySQL DELETE CASCADE

MySQL DELETE CASCADE
En MySQL, la declaración ON DELETE CASCADE se utiliza para eliminar las filas correspondientes de la tabla secundaria de forma implícita cada vez que las filas se eliminan de la tabla principal. Este es un tipo relativo de comportamiento contextual relacionado con la clave externa.

Suponiendo que ha producido dos tablas con una CLAVE EXTRANJERA dentro de una relación de clave externa, representando una tabla principal y secundaria. Después de eso, un destinado a una LLAVE EXTRANJERA debe arreglarse para que otra tenga éxito a lo largo de las actividades en cascada, luego especificamos una instrucción ON DELETE CASCADE. Quizás si una sola declaración de LLAVE EXTRANJERA determina ON DELETE CASCADE, las funciones en cascada desencadenarán una excepción.

Veamos cómo a lo largo de la tabla MySQL, podríamos usar la instrucción ON DELETE CASCADE.

Debe abrir el Shell de cliente de línea de comandos de MySQL recientemente instalado para continuar con el trabajo. Al abrir, se le pedirá que ingrese su contraseña para continuar usando el shell de cliente de línea de comandos de MySQL, como se adjunta a continuación.

A continuación, crearemos dos tablas llamadas "pedido" y "cliente". Ambas tablas mutuas están conectadas con la función de eliminación en cascada utilizando una clave externa. Un "pedido" es la tabla principal en este punto y la tabla secundaria es el "cliente". Con los scripts adjuntos, junto con los registros respectivos, debe construir ambas tablas. Utilice el siguiente comando "usar" para seleccionar la base de datos en la que desea trabajar o crear tablas dentro. Aquí "datos" es la base de datos que estamos usando.

>> utilizar datos;

Crear tabla principal:

En primer lugar, debe crear el "orden" de la tabla junto con sus campos utilizando el comando CREAR TABLA, como se muestra en la siguiente consulta. La columna "ID" se utilizará en la siguiente tabla "cliente" como clave externa.

>> CREAR TABLA de datos.order (ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, artículo VARCHAR (50) NOT NULL, Price VARCHAR (50) NOT NULL);

Agreguemos algunos datos a esta tabla. Debe ejecutar las consultas que se muestran a continuación en el shell de línea de comandos de MySQL y ejecutar cada comando individualmente en la línea de comandos o simplemente agregar todos los comandos en la línea de comandos en un solo paso. También puede usar la GUI de MySQL Workbench para agregar datos a la tabla.

Ahora revisemos el "orden" de la tabla después de ponerle valores. Puede utilizar el comando SELECT para este propósito de la siguiente manera:

>> SELECCIONAR * DE datos.pedido;

Puede ver que los datos se han guardado correctamente en el "orden" de la tabla como se esperaba.

Crear tabla secundaria con DELETE Cascade:

Ahora es el turno de crear otra tabla llamada "cliente".

Primero, debe escribir la palabra clave "CREAR" junto con el nombre de la tabla. Luego, debe agregar nombres de campo o columna junto con sus tipos de datos. Debe nombrar la última columna, que se usará como clave externa en esta tabla, igual que la nombró en la tabla anterior. Como sabe, la columna "ID" de la tabla "pedido" se ha utilizado como clave externa en la tabla "cliente" como "OrderID". Después de eso, debe agregar la palabra clave "CONSTRAINT", que se usa para inicializar la clave FOREIGN, junto con la referencia de la tabla anterior. Ahora tiene que usar la instrucción "DELETE CASCADE" junto con la palabra clave "ON".

>> CREAR TABLA de datos.cliente (CustID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR (45) NOT NULL, OrderID INT NOT NULL, CONSTRAINT order_id_fk FOREIGN KEY (OrderID) REFERENCIAS datos.orden (ID) EN BORRAR CASCADA);

Una vez que se ha creado la tabla y se ha ejercido con éxito el DELETE CASCADE en esta tabla, es hora de insertar algunos valores en esta tabla. Pruebe las siguientes instrucciones una por una en el shell del cliente de línea de comandos de MySQL para hacer esto.

Posteriormente, realizar la inserción de consultas. Es un punto para verificar la tabla si los datos se agregaron correctamente o no. Así que prueba este siguiente comando para hacer esto:

>> SELECCIONAR * DE datos.cliente;

Aquí, puede echar un vistazo a la salida de la tabla de que los datos se le asignan de manera eficiente y sin ningún error o falla.

Eliminar registros:

Ahora, cuando elimine cualquier dato o fila de la tabla principal, también eliminará los datos o la fila de la tabla secundaria debido a la función DELETE CASCADE habilitada en la clave externa mencionada en la tabla secundaria. Probemos primero la consulta DELETE, luego verifiquemos los resultados. Borraremos los datos de la tabla "orden" donde el "ID" es "11". Si se encuentra el mismo "ID" en la tabla "cliente" en la columna de clave externa, "OrderID", la fila o los datos relativos en la tabla "cliente" también se eliminarán. Pruebe el siguiente comando en la línea de comandos para hacerlo:

>> ELIMINAR DE los datos. orden DONDE ID = '11';

Primero, revisemos la tabla principal. Luego, escriba el comando SELECT que se encuentra a continuación para recuperar los registros restantes de la tabla "orden" "después de la eliminación de algunos registros. Verá que el registro de la tabla, donde el "ID" era "11", se ha eliminado correctamente de esta tabla. Esto significa que los registros relativos del mismo valor de ID, "11", también se eliminarían de la tabla secundaria.

>> SELECCIONAR * DE datos.pedido;

Obtener los registros de la tabla secundaria usando el comando SELECT es tan simple como lo hacía antes. Simplemente pruebe el comando a continuación y obtendrá los resultados.

Al obtener los resultados, puede ver que el registro de "CustID" con un valor de "1" que se ha eliminado por completo. Esto se debe a que la columna "OrderID" tiene un valor de "11" en su primera fila, lo que lleva a la eliminación de esa fila.

>> SELECCIONAR * DE datos.cliente;

Cuando intenta eliminar la tabla principal con el comando DROP, MySQL le impedirá hacerlo. Esto se debe a que la tabla principal ha habilitado ELIMINAR CASCADA en ella. Entonces, para soltar la tabla, primero debe eliminar la BORRAR CASCADA de ella.

Conclusión:

Hemos terminado con la explicación de DELETE CASCADE en MySQL. Para hacerlo más claro, pruebe con más ejemplos al final.

Los 5 mejores productos ergonómicos de mouse de computadora para Linux
¿El uso prolongado de la computadora causa dolor en la muñeca o los dedos?? ¿Sufre de rigidez en las articulaciones y constantemente tiene que dar la ...
Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...
Vuelva a asignar los botones del mouse de manera diferente para diferentes programas con X-Mouse Button Control
Tal vez necesite una herramienta que pueda hacer que el control de su mouse cambie con cada aplicación que use. Si este es el caso, puede probar una a...