外键null不起作用

时间:2013-11-27 11:58:16

标签: mysql key

我在MySQL数据库中创建了一个表。该表具有自己的外键。我已经设置了具有foregin键的列允许空值,但是当我尝试在其中插入一个空值为null的记录时,我有一个外键违规错误:

ERROR 1452: Cannot add or update a child row: a foreign key constraint     fails     (`BTBONITAPRE/documentacionActividad`, CONSTRAINT `fkPadre` FOREIGN KEY (`codActividad`) REFERENCES `documentacionActividad` (`codActividad`) ON UPDATE CASCADE)

以下是表格定义:

CREATE TABLE `documentacionActividad` (
`codActividad` varchar(20) NOT NULL,
`codDocumentacion` int(11) NOT NULL,
`nombreDocumentacion` varchar(100) NOT NULL,
`documentacionPadre` int(11) default NULL,
`Creador` varchar(45) default NULL,
`fechaCreado` datetime default NULL,
`Modificador` varchar(45) default NULL,
`fechaModificado` datetime default NULL,
PRIMARY KEY  (`codDocumentacion`,`codActividad`),
KEY `fkPadre` (`codActividad`),
CONSTRAINT `documentacionActividad_ibfk_3` FOREIGN KEY (`codActividad`) REFERENCES   `Actividad` (`codActividad`),
CONSTRAINT `fkPadre` FOREIGN KEY (`codActividad`) REFERENCES `documentacionActividad`   (`codActividad`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$

有些帮助吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您应该在codActividad上允许null:

`codActividad` varchar(20)

默认字段可以为NULL,因此不要添加NOT NULL