【发布时间】:2019-09-29 04:15:48
【问题描述】:
MySql 工作台告诉我我的 SQL 语法中有一个错误,对应于我的 MariaDB 服务器版本,我不知道为什么。
我已经查看了其他问题,但似乎都没有帮助,所以我现在问自己的问题...我真的不知道我的代码有什么问题,也不知道问题出在哪里我的语法是。我尝试设置一些逗号或重命名列等,并将模型中的 SQL 版本更改为我与 xampp 一起使用的 sql 版本。但是,在更改版本后,我仍然收到该错误...
创建表的sql是(我已经把cmets拿出来了):
CREATE SCHEMA IF NOT EXISTS `testDB` DEFAULT CHARACTER SET utf8 ;
USE `testDB` ;
CREATE TABLE IF NOT EXISTS `testDB`.`person` (
`personID` INT NOT NULL AUTO_INCREMENT,
`firstname` VARCHAR(45) NULL,
`lastname` VARCHAR(45) NULL,
PRIMARY KEY (`personID`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `testDB`.`comment` (
`commentID` INT NOT NULL AUTO_INCREMENT,
`comment` VARCHAR(45) NOT NULL,
`person_personID` INT NOT NULL,
PRIMARY KEY (`commentID`),
INDEX `fk_comment_person_idx` (`person_personID` ASC) VISIBLE,
CONSTRAINT `fk_comment_person`
FOREIGN KEY (`person_personID`)
REFERENCES `testDB`.`person` (`personID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
我得到的错误是:
Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use near '
CONSTRAINT `fk_comment_person`
FOREIGN KEY (`person_personID`)
REFERE' at line 9
SQL Code:
-- -----------------------------------------------------
-- Table `testDB`.`comment`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `testDB`.`comment` (
`commentID` INT NOT NULL AUTO_INCREMENT,
`comment` VARCHAR(45) NOT NULL,
`person_personID` INT NOT NULL,
PRIMARY KEY (`commentID`),
INDEX `fk_comment_person_idx` (`person_personID` ASC) VISIBLE,
CONSTRAINT `fk_comment_person`
FOREIGN KEY (`person_personID`)
REFERENCES `testDB`.`person` (`personID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
SQL script execution finished: statements: 6 succeeded, 1 failed
Fetching back view definitions in final form.
Nothing to fetch
【问题讨论】:
-
注意:如果
right syntax to use near之后引用的代码没有问题,则问题通常就在该代码之前,在您的情况下为VISIBLE。
标签: mysql mysql-workbench