Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/05/2010, 06:20
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Eliminar dato not_null de una tabla relacionada

No puedes borrar un registro de una tabla cuya PK es FK de otra tabla, mientras la otra tabla todavía conserve registros relacionados con la primera. Eso se denomina integridad referencial. Esto es válido para las tablas InnoDB, pero no para el resto, por cuanto las únicas que tienen restricciones de clave foránea (FK) son esas. Si son MyISAM podrías.
En el caso de las InnoDB, se puede hacer que los registros se borren o actualicen en cascada, pero eso debe definirse en la creación de la tabla secundaria, al momento de indicar la FOREIGN KEY, colocando la cláusula ON DELETE CASCADE ON UPDATE CASCADE. En ese caso, se borrarán en cascada todos los registros relacionados.
Puede también hacerse que no se borren, poniendo un ON DELETE SET NULL, pero para ese caso el campo de la tabla secundaria debe ser creado como NULL y no como NOT NULL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)