Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql ";无法添加,因为它没有主键;NetBeans中的bug_Mysql_Jsp_Netbeans - Fatal编程技术网

Mysql ";无法添加,因为它没有主键;NetBeans中的bug

Mysql ";无法添加,因为它没有主键;NetBeans中的bug,mysql,jsp,netbeans,Mysql,Jsp,Netbeans,我尝试从MySQL数据库创建一个实体类。Netbeans中的向导给我错误消息“无法添加,因为它没有主键”。但我的表中有一个主键。这似乎是其他人在本论坛中遇到的一个bug: 我尝试过线程中的建议,但没有得到它的工作。我错过了什么?我可以强制Netbeans导入实体类吗 我正在使用NetBeans7.3 这是我的桌子: CREATE TABLE IF NOT EXISTS `estelle`.`FrasVal` ( `ID` INT(11) NOT NULL AUTO_INCREMENT , `

我尝试从MySQL数据库创建一个实体类。Netbeans中的向导给我错误消息“无法添加,因为它没有主键”。但我的表中有一个主键。这似乎是其他人在本论坛中遇到的一个bug:

我尝试过线程中的建议,但没有得到它的工作。我错过了什么?我可以强制Netbeans导入实体类吗

我正在使用NetBeans7.3

这是我的桌子:

CREATE  TABLE IF NOT EXISTS `estelle`.`FrasVal` (
`ID` INT(11) NOT NULL AUTO_INCREMENT ,
`Varde` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
`Kommentar` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL ,
`RegistreratDatum` DATETIME NOT NULL ,
`FrasFragaSvarAlternativ_ID` INT(11) NULL ,
`Anvandare_ID` INT(11) NOT NULL ,
`Patient_ID` INT(11) NOT NULL ,
`FrasFraga_ID` INT(11) NOT NULL ,
PRIMARY KEY (`ID`) ,
UNIQUE INDEX `ID_UNIQUE` (`ID` ASC) ,
INDEX `fk_FrasVal_FrasFragaSvarAlternativ1_idx` (`FrasFragaSvarAlternativ_ID` ASC) ,
INDEX `fk_FrasVal_Anvandare1_idx` (`Anvandare_ID` ASC) ,
INDEX `fk_FrasVal_Patient1_idx` (`Patient_ID` ASC) ,
INDEX `fk_FrasVal_FrasFraga1_idx` (`FrasFraga_ID` ASC) ,
CONSTRAINT `fk_FrasVal_FrasFragaSvarAlternativ1`
FOREIGN KEY (`FrasFragaSvarAlternativ_ID` )
REFERENCES `estelle`.`FrasFragaSvarAlternativ` (`ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_FrasVal_Anvandare1`
FOREIGN KEY (`Anvandare_ID` )
REFERENCES `estelle`.`Anvandare` (`ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_FrasVal_Patient1`
FOREIGN KEY (`Patient_ID` )
REFERENCES `estelle`.`Patient` (`ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_FrasVal_FrasFraga1`
FOREIGN KEY (`FrasFraga_ID` )
REFERENCES `estelle`.`FrasFraga` (`ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
我尝试过线程中的建议,但没有得到它的工作

你确定吗?您发布的代码示例没有显示这一点。如有必要,更新您的问题以反映问题的实际状态


根据,一个可能的(?)解决方法是将您的表全部拼写为小写:

“让我很难受的是,出于某种古怪的原因 表名必须全部小写。如果表名为混合 案例:反向过程中不会发现关系 在我的实验中,我发现 Middlegen医生对此给出了警告,所以我猜 EclipseDali插件在幕后使用Middlegen 也应该是INNODB。”

如果外键的大小写和 小写表格名称与引用表格的定义不匹配


我建议(1)使用所有小写表名,(2)确保表引用在外键约束上拼写相同

CREATE  TABLE IF NOT EXISTS `estelle`.`frasval` (
--                                     ^^^^^^^
 ...

REFERENCES `estelle`.`frasfragasvaralternativ` (`ID` )
--                    ^   ^    ^   ^

您可能还可以在表名中使用下划线
(肯定会使内容更可读!)。如果你有时间做一些实验,请发表你的结论

当我收到错误时,我删除了外键,再次添加外键,重新启动了mysql连接,并且成功了

这是因为字段“ID”名称上的第一个字符是大写的。用“id”试试。我知道,听起来很傻,但这对我来说很有效。

谢谢你的帮助。嗯,这是一个可怕的错误。我将所有具有一对一关系的表重新定义为具有一对多关系的表,并使其正常工作。似乎此错误消息通常是数据库中的错误太多