Mysql 错误:将sql脚本应用于数据库时出错错误,错误:1064请检查Mariadb服务器手册以了解正确的语法

Mysql 错误:将sql脚本应用于数据库时出错错误,错误:1064请检查Mariadb服务器手册以了解正确的语法,mysql,sql,mariadb,mysql-workbench,Mysql,Sql,Mariadb,Mysql Workbench,嘿,这是我的sql,它以前工作得很好,但我意外地删除了表,再次重新创建它显示了这个错误。 有人能帮我吗 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

嘿,这是我的sql,它以前工作得很好,但我意外地删除了表,再次重新创建它显示了这个错误。 有人能帮我吗

    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脚本应用于数据库时出错

当我尝试创建表viewtable时会出现这种情况, 如果我尝试直接执行该语句,则会出现一个错误,即:

错误:1064您的sql语法有错误,请检查与ur mariadb服务器版本相对应的手册,以获得使用near'的正确syntx

project.main1已经完成

CREATE TABLE `project`.`main1` (
  `name` VARCHAR(50) NOT NULL,
  `email` VARCHAR(100) NOT NULL,
  PRIMARY KEY (`email`));
错误1064:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解使用near'CONSTRAINT`email`FOREIGN KEY`email`REFERENCES`project`.`main1`'在第23行的正确语法SQL语句:CREATE TABLE`project`.`viewtable`` contact`BIGINT10 NOTNULL,`date`date NOTNULL,`age`INT NOTNULL,`SEQUESD`VARCHAR45 NOTNULL,'ms`VARCHAR45 NOT NULL,`kids`INT NOT NULL,`religation`VARCHAR45 NOT NULL,`qual`VARCHAR45 NOT NULL,`img`LONGBLOB NULL,`ht`VARCHAR45 NOT NULL,`wt`VARCHAR45 NOT NULL,`wrkp`VARCHAR45 NOT NULL,`city`VARCHAR45 NOT NULL,`comp`VARCHAR45 NOT NULL,`addr`VARCHAR200 NOT NULL,`diet`VARCHAR45 NOT NULL,`wrkpl`VARCHAR45 NOT NULL,`sal`VARCHAR45 NULL,`email`VARCHAR100 NOT NULL,`password`VARCHAR45 NOT NULL,主键`contact`,索引`email_idx``email`ASC VISIBLE,约束`email`FOREIGN KEY`email`REFERENCES`project`。`main1``email`删除级联更新级联


使用定义为的字段创建外键

`email` VARCHAR(70) NOT NULL
`email` VARCHAR(100) NOT NULL
而您要引用的字段定义为

`email` VARCHAR(70) NOT NULL
`email` VARCHAR(100) NOT NULL
当然,无法创建引用,因为长度不相等

可能的解决办法:

更改viewtable中的字段定义,并将其长度从70个字符增加到100个字符

更改main1中的字段定义,并将其长度从100个字符减少到70个字符

在main1中通过表达式email70创建附加索引并引用它。或者通过将约束定义更改为来获得相同的结果


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

您在错误消息出现之前立即切断它显示完整的错误消息!!!我发现了两个可能的问题—“外键格式不正确”和“字符字段总长度太长”。如何纠正您在问题中提到的@AkinaAdd外键问题:1完整的错误消息文本;2 project.main1表的DDL脚本。嘿,即使在执行此操作后,我也出现了相同的错误,但我尝试删除索引电子邮件\u idx email ASC VISIBLE,它成功了,因为VISIBLE不是受支持的语法。顺便说一句,创建表与上一个链接相同。