开发者社区> 问答> 正文

我使用mysql创建一个表,结果显示出错,新手求解答? 400 报错

我使用mysql创建一个表,结果显示出错,新手求解答? 400 报错

我想用以下代码在mysql中创建一个表结果报错,请问以下是哪里出的问题呀?

mysql代码:

create table Enrollment(
    ssn char(9),
    courseId char(5),
    dateRegistered date,
    grade char(1),
    primary key (ssn,courseId),
    foreign key (ssn) references
    Student (ssn),
    foreign key (courseId) references (courseId)
);

错误信息:

ERROR 1064 (42000): 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 '(courseId)
)' at line 10

我的运行环境是ubuntu 16.04.1下的mysql

展开
收起
优选2 2020-06-09 11:21:16 608 0
1 条回答
写回答
取消 提交回答
  • 有几点我需要跟你说下:

    1,一个表的主键是唯一且非空的,目测下你是想ssn作为主键?那为什么不标识notnull

    2,既然ssn想作为主键,为什么又要作为外键,你觉得这样设计合理吗?就算你觉得合理那这样在实现逻辑也很容易出错的知道吗

    3, Student是什么?另一张表?还是字段?

    4,表名应该小写字母

    建议你去看下mysql规范

    ps:给你一个简单完整的sql

    droptableifexistsenrollment;


    /*==============================================================*/
    /*Table:enrollment                      */
    /*==============================================================*/
    createtableenrollment
    (
      ssn         char(9)notnull,
      courseId      char(5),
      dateRegistered   date,
      grade        char(1),
      primarykey(ssn)
    );



    ######回复 @FVoid:建议你换本书吧。。。######这串代码是我从书上直接搬下来的,我还没搞懂这些是什么意思。。。Student是另一张表,它那里写表明大写开头,变量名小写开头,然后我就写了大写了。。。######

     Student(ssn),

    这行是啥意思,解释哈

    ######回复 @抓瓦工人:这段代码是直接在书上面copy过来的。。。######回复 @FVoid:我问你的是,这种语法哪里来的?######Student是另一张表。。。
    2020-06-09 11:21:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像