首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:将sql脚本应用于数据库错误时出错,错误:1064检查Mariadb服务器手册以获得正确的语法。

错误:将sql脚本应用于数据库错误时出错,错误:1064检查Mariadb服务器手册以获得正确的语法。
EN

Stack Overflow用户
提问于 2020-05-14 05:55:32
回答 1查看 771关注 0票数 0

嘿,这是我的sql,它以前运行得很好,但是我不小心删除了这个表,并再次创建了这个表,并向我展示了这个错误。有人能帮我一下吗?

代码语言:javascript
运行
复制
    CREATE TABLE `project`.`viewtable` (
  `contact` BIGINT(10) NOT NULL,
  `date` DATE NOT NULL,
  `age` INT NOT NULL,
  `gender` VARCHAR(45) NOT NULL,
  `ms` VARCHAR(45) NOT NULL,
  `kids` INT NOT NULL,
  `religion` VARCHAR(45) NOT NULL,
  `qual` VARCHAR(45) NOT NULL,
  `img` LONGBLOB NOT NULL,
  `ht` VARCHAR(45) NOT NULL,
  `wt` VARCHAR(45) NOT NULL,
  `wrkp` VARCHAR(45) NOT NULL,
  `city` VARCHAR(45) NOT NULL,
  `comp` VARCHAR(45) NOT NULL,
  `addr` VARCHAR(200) NOT NULL,
  `diet` VARCHAR(45) NOT NULL,
  `wrkpl` VARCHAR(45) NOT NULL,
  `sal` VARCHAR(45) NULL,
  `email` VARCHAR(70) NOT NULL,
  `password` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`contact`),
  INDEX `email_idx` (`email` ASC) VISIBLE,
  CONSTRAINT `email`
    FOREIGN KEY (`email`)
    REFERENCES `project`.`main1` (`email`)
    ON DELETE CASCADE
    ON UPDATE CASCADE);   

我发现了一个错误:

错误:将sql脚本应用于数据库时出错。

当我尝试创建表视图时,就会出现这种情况,如果我试图直接执行该语句,则会收到一个错误消息:

错误:1064您在sql语法中有一个错误,请检查与ur mariadb服务器版本相对应的手册,以便右syntx使用near‘

project.main1有

代码语言:javascript
运行
复制
CREATE TABLE `project`.`main1` (
  `name` VARCHAR(50) NOT NULL,
  `email` VARCHAR(100) NOT NULL,
  PRIMARY KEY (`email`));

错误1064:您的SQL语法出现错误;请检查与MariaDB服务器版本对应的手册,以获得在“CONSTRAINT `email` FOREIGN KEY (`email`) REFERENCES `project`.`main1`' at line 23 SQL Statement: CREATE TABLE `project`.`viewtable` ( `contact` BIGINT(10) NOT NULL, `date` DATE NOT NULL, `age` INT NOT NULL, `gender` VARCHAR(45) NOT NULL, `ms` VARCHAR(45) NOT NULL, `kids` INT NOT NULL, `religion` VARCHAR(45) NOT NULL, `qual` VARCHAR(45) NOT NULL, `img` LONGBLOB NULL, `ht` VARCHAR(45) NOT NULL, `wt` VARCHAR(45) NOT NULL, `wrkp` VARCHAR(45) NOT NULL, `city` VARCHAR(45) NOT NULL, `comp` VARCHAR(45) NOT NULL, `addr` VARCHAR(200) NOT NULL, `diet` VARCHAR(45) NOT NULL, `wrkpl` VARCHAR(45) NOT NULL, `sal` VARCHAR(45) NULL, `email` VARCHAR(100) NOT NULL, `password` VARCHAR(45) NOT NULL, PRIMARY KEY (`contact`), INDEX `email_idx` (`email` ASC) VISIBLE, CONSTRAINT `email` FOREIGN KEY (`email`) REFERENCES `project`.`main1` (`email`) ON DELETE CASCADE ON UPDATE CASCADE)

”附近使用的正确语法

EN

回答 1

Stack Overflow用户

发布于 2020-05-14 06:36:14

使用以下字段创建外键:

代码语言:javascript
运行
复制
`email` VARCHAR(70) NOT NULL

而要引用的字段定义为

代码语言:javascript
运行
复制
`email` VARCHAR(100) NOT NULL

当然,不能创建引用,因为长度不相等。

可能的解决办法:

  1. 修改viewtable中的字段定义,并将main1中的字段定义从70个字符增加到100个字符,并将其长度从100个字符减少到70个;
  2. 通过表达式email(70)main1中创建附加索引并引用该索引。或通过将约束定义更改为

获得相同的结果。

代码语言:javascript
运行
复制
CONSTRAINT `email`     
FOREIGN KEY (`email`)     
REFERENCES `project`.`main1` (`email`(70))     
ON DELETE CASCADE     
ON UPDATE CASCADE

在这种情况下,所提到的索引将自动创建。

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

https://stackoverflow.com/questions/61790269

复制
相关文章

相似问题

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