首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Create table schema错误-不确定出现架构错误的原因

Create table schema错误-不确定出现架构错误的原因
EN

Stack Overflow用户
提问于 2019-03-25 06:49:26
回答 1查看 271关注 0票数 0

这段代码抛出了一个模式错误,但是它没有解释其中的原因。敬请指教!

代码语言:javascript
复制
CREATE TABLE restaurantProfile (
  restaurantID CHAR(15),
  name VARCHAR(30),
  cuisineType VARCHAR(30),
  address VARCHAR(30),
  description VARCHAR(500),
  phone varchar(10),
  PRIMARY KEY (restaurantID)
);

CREATE TABLE menu (
  menuID CHAR(15),
  dateStart date,
  restaurantID CHAR(15),
  PRIMARY KEY (menuID),
  FOREIGN KEY (restaurantID) REFERENCES restaurantProfile(restaurantID)
);

Error thrown: 
Schema Error: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE menu ( menuID VARCHAR(15), dateStart date, restaurantID CHAR(' at line 10
EN

回答 1

Stack Overflow用户

发布于 2019-03-25 07:12:06

更新:此响应在MS SQL数据库中是有效的建议,问题已被重新标记,因为它是MySQL。

语法正确,这里唯一的问题是对restaurantProfile的引用

  1. 检查restaurantProfile表是否存在,从表中选择应该验证这一点,如果您的CREATE table语句是较大批量语句的一部分,请确保首先创建了主表。

SELECT * FROM restaurantProfile

  • Confirm表明列restaurantProfile.restaurantID存在且TYPECHAR(15)

在外键约束中,源列和目标列必须具有匹配的数据类型,并且在某些关系数据库中,关系的主体端需要定义为允许外键relationships.In MS SQL Sever我们可以运行以下查询来检查列信息:

SELECT TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,NUMERIC_PRECISION FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'restaurantID‘和TABLE_NAME = 'restaurantProfile’

这应该返回如下所示的内容:

TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH NUMERIC_PRECISION- dbo restaurantProfile restaurantID char 15 NULL

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55329330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档