MySql工作台告诉我,我的MariaDB语法中有一个与我的MariaDB服务器版本相对应的错误,我不知道为什么。
我已经看过其他问题了,但似乎都没有帮助,所以我现在问我自己的问题.我真的不知道我的代码有什么问题,我也不知道我的语法有什么问题。我尝试设置一些comas或重命名列等,并将模型中的SQL版本更改为与xampp一起使用的sql版本。不过,在改变版本后我还是会犯错误..。
创建表的sql是(我已经去掉了注释):
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发布于 2019-05-11 14:59:46
删除语句中可见的单词:
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),
CONSTRAINT `fk_comment_person`
FOREIGN KEY (`person_personID`)
REFERENCES `testDB`.`person` (`personID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;因为在MariaDB中尚未实现不可见的选项。此选项在ORACLE中实现
https://stackoverflow.com/questions/56091400
复制相似问题