0

I have creating a table at a MySQL database. This table have a foreign key with itself. I have set that the column with have the foregin key permit null values, but when I try insert a record with the null value in it column, I have a foreign key violation error:

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)

Here is the table definition:

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$$

Some help? Thanks!

alberph
  • 61
  • 3
  • 13
  • possible duplicate of [MySQL foreign key to allow NULL?](http://stackoverflow.com/questions/441988/mysql-foreign-key-to-allow-null) – evuez Nov 27 '13 at 12:01

1 Answers1

0

You should allow null on codActividad:

`codActividad` varchar(20)

By default fields can be NULL, so just don't add NOT NULL

evuez
  • 3,257
  • 4
  • 29
  • 44