SQL表不会构建

时间:2014-04-13 14:53:48

标签: mysql

我收到一条错误消息,指出此代码中存在语法错误,

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;

我看不到语法错误

2 个答案:

答案 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