Cita:
Iniciado por gnzsoloyo ¿Borrar o vaciar?
No puedes borrar la tabla sin eliminar primero las restricciones de FK que están en las otras tablas, porque son parte de la estructura de las tablas. No solamente es una cuestión de valores.
Vaciarla, si. Si no hay registros en las otras tablas, se puede vaciar la principal sin problemas.
He probado de vaciarla
truncate table tbl_user;
Y me aparece el siguiente error
Cannot delete or update a parent row: a foreign key constraint fails (`prueba`.`tbl_user_personal`, CONSTRAINT `fk_user_personal_user` FOREIGN KEY (`user_id`) REFERENCES `tbl_user` (`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)
Entonces he vaciado primero la tabla
tbl_user_personal y entonces si que me dejó vaciar la tabla
tbl_user
Pero si no hubiese vaciado estas tablas, ¿Cómo puedo eliminar las restricciones? haciendo un
ALTER TABLE tu_tabla
DROP CONSTRAINT tu_foreign_key
??
Otra pregunta más... ¿Cómo debería hacer para que si elimino un registro de una tabla se elimine todas sus entradas en las demás tablas?
Código SQL:
Ver originalCREATE TABLE `tbl_user_preferencias` (
`user_id` INT(10) UNSIGNED NOT NULL,
`user_lang` CHAR(3) COLLATE utf8_spanish_ci DEFAULT 'esp',
`hide_email` CHAR(1) COLLATE utf8_spanish_ci DEFAULT '0',
KEY `fk_user_id_user_preferencias_user` (`user_id`),
CONSTRAINT `fk_user_id_user_preferencias_user` FOREIGN KEY (`user_id`) REFERENCES `tbl_user` (`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
Muchas gracias de antemano