我在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$$
有些帮助吗?谢谢!
答案 0 :(得分:0)
您应该在codActividad
上允许null:
`codActividad` varchar(20)
默认字段可以为NULL,因此不要添加NOT NULL