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 – 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 Tips – Mayúsculas (Ucase) y reemplazar... Durante un proyecto puedes encontrarte con imprevistos. Imaginad que una vez almacenado los datos de nuestros clientes en la base de datos, nos dicen ...
Mysql – Insert cogiendo datos con una senten... Veamos cómo insertar registros en una tabla cogiendo los datos de otra. INSERT INTO eliminatorias(id,eliminatoria,fecha,) SELECT null, 'TEXTO ES...
MySql – Sql para saber tamaño de tablas En algunas ocasiones, debido a que nuestra base de datos mysql llega al límite de su tamaño, no podemos entrar de forma normal a las tablas mediante ...

2 comentarios

Deja un comentario

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

*