MySQL 数据库错误 #1064 语法错误

标签 mysql sql database

救命啊! 我不断收到错误消息。

1064 - 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 'MGRDATE DATE, PRIMARY KEY (DNUM), FOREIGN KEY (MGRSSN) REFERENCES EMPL' at line 6

CREATE TABLE EMPLOYEE ( 
    SSN INT NOT NULL, 
    FNAME VARCHAR(15) NOT NULL, 
    MINIT VARCHAR(1) NOT NULL, 
    LNAME VARCHAR(15) NOT NULL, 
    BDATE DATE, 
    ADDRESS VARCHAR(50), 
    SEX VARCHAR(1), 
    SALARY INT NOT NULL, 
    SUPERSSN INT NOT NULL, 
    DNO INT NOT NULL, 
    PRIMARY KEY (SSN)
);

CREATE TABLE DEPARTMENT ( 
    DNUM INT NOT NULL, 
    DNAME VARCHAR(15) NOT NULL, 
    MGRSSN INT NOT NULL,
    INDEX (MSGSSN)
    MGRDATE DATE, 
    PRIMARY KEY (DNUM), 
    FOREIGN KEY (MGRSSN) 
        REFERENCES EMPLOYEE(SSN)
        ON DELETE CASCADE,
); 

CREATE TABLE WORKS_ON ( 
    SSN INT NOT NULL, 
    INDEX (SSN)
    PNO INT NOT NULL,
    INDEX (PNO) 
    HOURS INT NOT NULL, 
    FOREIGN KEY (SSN) 
        REFERENCES EMPLOYEE(SSN)
        ON DELETE CASCADE,
    FOREIGN KEY (PNO) 
        REFERENCES PROJECT(PINT)
        ON DELETE CASCADE,
); 

CREATE TABLE DEPT_LOCATION ( 
    DNUM INT NOT NULL, 
    DLOCATION VARCHAR(20) NOT NULL
);

CREATE TABLE DEPENDENT ( 
    SSN INT NOT NULL, 
    INDEX (SSN)
    DEPENDENT_NAME VARCHAR(10) NOT NULL, 
    SEX VARCHAR(1) NOT NULL, 
    DOB DATE, 
    RELATIONSHIP VARCHAR(10) NOT NULL,
    FOREIGN KEY (SSN) 
        REFERENCES EMPLOYEE(SSN)
        ON DELETE CASCADE,
);

CREATE TABLE PROJECT (
    PNAME VARCHAR(15) NOT NULL, 
    PINT INT NOT NULL, 
    PLOCATION VARCHAR(20) NOT NULL,
    INDEX (PLOCATION) 
    DNUM INT NOT NULL, 
    INDEX (DNUM)
    PRIMARY KEY (PINT), 
    FOREIGN KEY (PLOCATION) 
        REFERENCES DEPT_LOCATION(DLOCATION)
        ON DELETE CASCADE,
    FOREIGN KEY (DNUM) 
        REFERENCES “DEPARTMENT” (DNUM)
        ON DELETE CASCADE,
); 

最佳答案

如果您使用,地段,则必须删除查询中的逗号

您应该更改以下表格:

1.DEPARTMENT 
2.WORKS_ON 
3.DEPENDENT 
4.PROJECT 

您的查询:

 ON DELETE CASCADE,  -- -->remove the comma
); 

更改为:

 ON DELETE CASCADE
); 

您应该在 department 表中犯下拼写错误,如下所示:

您的查询:

    MGRSSN INT NOT NULL,
    INDEX (MSGSSN)

更改为:

      MGRSSN INT NOT NULL,    
      INDEX (MGRSSN) ,

关于MySQL 数据库错误 #1064 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22953500/

相关文章:

php - 为什么 {if row exist then fetch them} 不起作用?

python - 如何将 Python 参数化 MySQL 语句与动态 SELECT 语句结合起来?

sql - COUNT(*) 包括空值?

sql - 如何在具有不同数据类型的列上将表连接在一起?

c# - MySql.Data.MySqlClient.MySqlException : 'Table ' performance_schema. session_variables'不存在'

sql - 在没有日志的情况下进行 SQL SERVER 数据库备份

python - SQL 中的 KD 树实现

mysql - 单元格未使用的长度/值

MySQL - 如何用列表中的随机字符串替换字符串

mysql - 按字符串排序,中间有空格