MySql – Borrar saltando restricción Foreign Key

Cuando estamos trabajando en base de datos de pruebas (en local o servidor), en ocasiones y normalmente en base de datos muy pesadas, nos puede interesar borrar registros de tablas que no nos interesa para poder trabajar mas cómodos (para que pese menos las importaciones). Aquí es donde podemos encontrarnos con problemas como la eliminación de registros de tablas relacionadas. Sale el error que impide la eliminación de registros porque la tabla está relacionada con otra tabla (Foregin Keys).

Está claro que esta eliminación de registros dependerá de la relación entre tablas. Este ejemplo lo único que hace es eliminar registros saltándose la restricción de que vigile si las tablas estan relacionadas…

Inicialmente, le decimos que no checkee las foreign keys (se puede hacer desde phpmysql en la pestaña SQL)

1
SET FOREIGN_KEY_CHECKS=0;

Ahora ya podemos eliminar los registros sin que salga la restricción de Foreign Keys. Ei, atentos que es peligroso. Solo en bases de datos de pruebas. En producción ni se os ocurra.

Después de eliminar restablecemos la condición de checkeo de foreign keys

1
SET FOREIGN_KEY_CHECKS=1;

Artículos relacionados

Mysql – UNION ALL y GROUP BY o ORDER BY Cuando en MySql se utiliza el UNION ALL, estamos uniendo los resultados de varias consultas. Para ello, debe cumplirse varias condiciones, entre la qu...
Mysql – Eliminar datos de dos tablas a la ve... Pongamos un ejemplo claro para mostrar qué queremos hacer. Por un lado, tenemos en una tabla llamada Facturas los datos de la factura. Por otro lado, ...
Mysql – Importar una base de datos desde con... Cuando manejamos grandes cantidades de datos en MySql, se hace difícil importar base de datos con phpMyAdmin (herramienta online que permite trabajar ...
Mysql – Unir los resultados de dos consultar... En muchas ocasiones nos puede interesar unir el resultado de dos consultas. Ya sabemos que para unirlos, los resultados de las consultas deben tener e...

Un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*