[SQL] eliminación de tabla - padre-hijo

Resuelto
azerty0 Mensajes publicados 1270 Fecha de registro   Estado Miembro Última intervención   -  
azerty0 Mensajes publicados 1270 Fecha de registro   Estado Miembro Última intervención   -
Hola,

he solucionado algunos problemas con mis restricciones de integridad ayer, pero ahora no puedo eliminar tablas a causa de esas restricciones. ¿Es posible lograr eliminar sin embargo una tabla padre ???

Aquí está el código :

 DROP TABLE IF EXISTS 'date'; CREATE TABLE 'date' ( 'id_date' int(10) unsigned NOT NULL auto_increment, 'formate' date NOT NULL , 'jour' varchar(8) default NULL, INDEX formate_ind ('formate'), CONSTRAINT pk_date PRIMARY KEY ('id_date') ) ENGINE =InnoDB DEFAULT CHARSET=utf8 ; -- -- Estructura de la tabla 'entree' -- Una entrada corresponde a un intervalo horario (horas enteras) -- DROP TABLE IF EXISTS 'entree'; CREATE TABLE 'entree' ( 'ent_id' int(10) unsigned NOT NULL auto_increment , 'ent_id_date' date NOT NULL , 'ent_heure_deb' int(2) NOT NULL, 'ent_heure_fin' int(2) NOT NULL, CONSTRAINT pk_entree PRIMARY KEY ('ent_id'), INDEX ent_id_ind ('ent_id'), CONSTRAINT fk_entree_date FOREIGN KEY ('ent_id_date') REFERENCES 'date' ('formate') ON DELETE CASCADE ) ENGINE =InnoDB DEFAULT CHARSET=utf8 ; 


Imposible eliminar la tabla date, phpmyadmin me da este error :

#1217 - Impossible eliminar un registro padre: una restricción externa lo impide 


Por lo tanto intenté eliminar la restricción de la tabla entree justo antes del DROP de la tabla date:

ALTER TABLE entree DROP CONSTRAINT 'fk_entree_date' ;


Pero me dice que hay un error de sintaxis... =/

3 respuestas

azerty0 Mensajes publicados 1270 Fecha de registro   Estado Miembro Última intervención   75
 
Para respetar la integridad referencial, es imposible eliminar las tablas hijas, así que desactivé las claves foráneas, creé mis tablas y reactivé las claves:

SET FOREIGN_KEY_CHECKS=0;

Supresión IF EXISTS
CREACIÓN

SET FOREIGN_KEY_CHECKS=1;
2