我收到一条错误消息,指出此代码中存在语法错误,
CREATE TABLE IF NOT EXISTS `reportcategorys` (
`categoryName` varchar(100) NOT NULL,
`subCategoryName` varchar(500) NOT NULL,
PRIMARY KEY (`categoryName`),
FOREIGN KEY (`subCategoryName`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `reportsubcategorys` (
`subCategoryName` varchar(500) NOT NULL,
`categoryName` varchar(100) NOT NULL,
PRIMARY KEY (`subCategoryName`),
FOREIGN KEY `Category_Name` (`categoryName`)
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
我看不到语法错误
答案 0 :(得分:3)
FOREIGN KEY指向什么?没有我能看到的桌子。
语法应该看起来像
FOREIGN KEY(subCategoryName) REFERENCES reportcategory(categoryName)
根据需要替换表及其主键。
表名应该是单数:reportCategory
,而不是reportCategories
。 (样式偏好,而不是语法。)
答案 1 :(得分:1)
在描述外键时需要编写
FOREIGN KEY(subCategoryName) REFERENCES reportcategory(categoryName)
有关详细信息,请查看此
https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html