Executing SQL script in server
ERROR: Error 1067: Invalid default value for ‘Users_Created’
CREATE TABLE IF NOT EXISTS `kwestionariusz_db`.`Companies` (
`CompanyId` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`Created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`Name` TEXT NOT NULL ,
`Users_UserId` INT UNSIGNED NOT NULL ,
`Users_Created` TIMESTAMP NULL DEFAULT NULL ,
PRIMARY KEY (`CompanyId`, `Created`, `Users_UserId`, `Users_Created`) ,
INDEX `fk_Companies_Users1` (`Users_UserId` ASC, `Users_Created` ASC) ,
CONSTRAINT `fk_Companies_Users1`
FOREIGN KEY (`Users_UserId` , `Users_Created` )
REFERENCES `kwestionariusz_db`.`Users` (`UserId` , `Created` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
So, basically, what did I did wrong? I don’t want Users_Created to be updated while creating Company, this would break the relation. Also – is Companies.Created going to be updated while changing e.g. Companies.EMail? I wouldn’t want that either, obviously, but making foreign key a null-able is kind of wrong anyway, right? So what should I do?
The
Users_Createdcolumn is a part of the primary key. Primary keys cannot contain nullable columns.