mysql - 将模型同步到服务器时 MySQL Workbench 中出现错误 1064

标签 mysql mysql-workbench

我是 MySQL 新手,之前只使用过 Microsoft Access 来处理 SQL。当我尝试将模型添加到服务器([数据库]->[同步模型])时,自动生成的 SQL 代码抛出此错误

Executing SQL script in server
ERROR: Error 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 ')

REFERENCES `medicineproblems`.`SleepTimes` ()
    ON DELETE NO ACTION
    ' at line 7
SQL Code:
        CREATE TABLE IF NOT EXISTS `medicineproblems`.`Records` (
          `Date` DATE NOT NULL,
          `SleepDuration` DECIMAL NOT NULL DEFAULT 0,
          `MoodAverage` DECIMAL NOT NULL DEFAULT 0,
          PRIMARY KEY (`Date`),
          CONSTRAINT `SleepDuration`
            FOREIGN KEY ()
            REFERENCES `medicineproblems`.`SleepTimes` ()
            ON DELETE NO ACTION
            ON UPDATE NO ACTION,
          CONSTRAINT `MoodAverage`
            FOREIGN KEY ()
            REFERENCES `medicineproblems`.`Mood` ()
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB
        DEFAULT CHARACTER SET = utf8

SQL script execution finished: statements: 5 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch 

我想知道出了什么问题。因此,在您的回答中,您能否告诉我错误的可能原因,以便我能够避免它?

最佳答案

您缺少在该表上引用的列名以及将引用的列,因此错误指向。下面一行

        FOREIGN KEY ()
        REFERENCES `medicineproblems`.`SleepTimes` ()

应该是

FOREIGN KEY(some_column_name)
REFERENCES `medicineproblems`.`SleepTimes`(some_column_name)

同样,您应该在 CREATE TABLE 语法的以下部分更正此问题

      CONSTRAINT `MoodAverage`
        FOREIGN KEY ()
        REFERENCES `medicineproblems`.`Mood` ()

参见MySQL Documentation了解更多信息。正确的语法是:

[CONSTRAINT [symbol]] FOREIGN KEY
    [index_name] (index_col_name, ...)
    REFERENCES tbl_name (index_col_name,...)
    [ON DELETE reference_option]
    [ON UPDATE reference_option]

关于mysql - 将模型同步到服务器时 MySQL Workbench 中出现错误 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39667119/

相关文章:

mysql - 如何在 Django 和 MySQL 之间使用压缩连接?

mysql - ssl连接错误: unknown error number

sql - 按mysql工作批中的限制记录进行分组

mysql - 使用 MySQL Workbench 更改 PK 和 FK 列类型

mysql - Xampp:如何完全卸载以恢复旧的 MySQL 安装?

MYSQL - NOT 与 var=false

mysql - 用于设置团队日程的数据库设计

php - 使用更新插入查询将 .csv 值插入数据库

mysql - 多主机 mysql 复制位置

mysql - 触发问题请指教