我是 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/