我在创建一个表格时遇到了问题,但不明白出了什么问题。phpMyAdmin在主键声明旁边设置了错误指示器...我不知道这是为什么...
这个表格是一个子表格,与另一个表格有一对多的识别关系。
CREATE TABLE IF NOT EXISTS `ruilen`.`Voorwerpen` (
`voorwerpen_id` INT NOT NULL AUTO_INCREMENT ,
`naam` VARCHAR( 45 ) NOT NULL ,
`beschrijving` VARCHAR( 45 ) NULL ,
`Gebruikers_gebruiker_id` INT NOT NULL ,
PRIMARY KEY ( `voorwerpen_id` , `Gebruikers_gebruiker_id` ) ,
CONSTRAINT `fk_Voorwerpen_Gebruikers1` FOREIGN KEY ( `Gebruikers_gebruiker_id` ) REFERENCES `ruilen`.`Gebruikers` (
`gebruiker_id`
) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE = InnoDB;
MySQL said: Documentation
#1005 - Can't create table 'ruilen.voorwerpen' (errno: 150)
编辑:这是我能找到的有关错误代码的所有文档:链接
编辑2:图片已删除
编辑3:
CREATE TABLE `gebruikers` (
`gebruiker_id` int(11) NOT NULL,
`naam` varchar(45) NOT NULL,
`straat` varchar(45) NOT NULL,
`gemeente` varchar(45) NOT NULL,
`mail` varchar(45) NOT NULL,
`beschrijving` varchar(45) DEFAULT NULL,
PRIMARY KEY (`gebruiker_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW CREATE TABLE Gebruikers
并在此处发布其输出结果? - Quassnoigebruiker_id
是一个PRIMARY KEY
,这意味着它是UNIQUE
的。真正的问题在于ON DELETE CASCADE
。 - Quassnoi