首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在创建外键表时修复错误1064?

如何在创建外键表时修复错误1064?
EN

Stack Overflow用户
提问于 2019-05-11 14:49:10
回答 1查看 119关注 0票数 0

MySql工作台告诉我,我的MariaDB语法中有一个与我的MariaDB服务器版本相对应的错误,我不知道为什么。

我已经看过其他问题了,但似乎都没有帮助,所以我现在问我自己的问题.我真的不知道我的代码有什么问题,我也不知道我的语法有什么问题。我尝试设置一些comas或重命名列等,并将模型中的SQL版本更改为与xampp一起使用的sql版本。不过,在改变版本后我还是会犯错误..。

创建表的sql是(我已经去掉了注释):

代码语言:javascript
运行
复制
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;

我所犯的错误是:

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

回答已采纳

发布于 2019-05-11 14:59:46

删除语句中可见的单词:

代码语言:javascript
运行
复制
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中实现

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56091400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档