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 – Exportar una base de datos desde con... Si ya vimos el caso de importar una base de datos de grandes dimensiones, lo mismo nos puede pasar a la hora de exportar. Si necesitamos exportar base...
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 – Eliminar registros de una tabla que ... Muchas veces, sobretodo en importaciones de bases de datos, nos puede interesar crear una nueva tabla a partir de dos tablas existentes, o eliminar da...

Un comentario

Deja un comentario

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

*