我不确定为什么我无法运行此sql脚本

时间:2019-12-29 09:57:09

标签: mariadb

使用我的sql创建此文件,不确定脚本出了什么问题

CREATE TABLE IF NOT EXISTS `restaurant`.`restaurant` (
  `_id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NOT NULL,
  `added_date` VARCHAR(30) NULL,
  `tele_number` VARCHAR(8) NULL,
  `about` TEXT(1024) NULL,
  `average_rating` INT NULL,
  `price` VARCHAR(10) NULL,
  `opening_hour` VARCHAR(255) NULL,
  `restaurantcol` VARCHAR(45) NULL,
  PRIMARY KEY (`_id`),
  UNIQUE INDEX `_id_UNIQUE` (`_id` ASC) VISIBLE,
  UNIQUE INDEX `tele number_UNIQUE` (`tele_number` ASC) VISIBLE)
ENGINE = InnoDB
给出错误: 错误代码:1064。检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第12行的'UNIQUE INDEX tele number_UNIQUEtele_number ASC)VISIBLE)ENGINE = InnoD附近使用

1 个答案:

答案 0 :(得分:1)

MySQL的错误消息包含尚未解析的查询部分,因为最后解析的令牌是产生错误的令牌。这意味着“ UNIQUE INDEX电话号码_UNIQUE ...” 之前的单词是问题。这个词是VISIBLE

MySQL 8.0中引入了VISIBLE关键字,您可能使用的是早期版本。

默认情况下,索引为VISIBLE。您可以从查询中安全删除此关键字。在MySQL 8上,您将获得与使用时相同的结果。在MySQL 5上,不存在不可见索引的概念,所有索引都是可见的。

我现在在错误消息中看到您没有使用MySQL,而是使用了MariaDB。 MariaDB是MySQL 5的一个分支,在某种程度上与MySQL兼容。您会在这里和那里发现许多小的差异。