添加自动增量和唯一表 ID 失败
Posted
技术标签:
【中文标题】添加自动增量和唯一表 ID 失败【英文标题】:Adding Auto Increment and Unique to Table ID Failing 【发布时间】:2019-04-26 22:04:07 【问题描述】:我正在使用 mysql 工作台来更改表,我以前从未遇到过这个问题。我正在尝试更改我的表以具有自动递增的唯一表 ID。我从错误屏幕中得到以下信息:
Operation failed: There was an error while applying the SQL script to the database.
Executing:
ALTER TABLE `madewix5_lindsey_website_data`.`products`
CHANGE COLUMN `product_id` `product_id` INT(3) NOT NULL AUTO_INCREMENT ,
ADD UNIQUE INDEX `product_id_UNIQUE` (`product_id` ASC) VISIBLE;
;
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 '' at line 3
SQL Statement:
ALTER TABLE `madewix5_lindsey_website_data`.`products`
CHANGE COLUMN `product_id` `product_id` INT(3) NOT NULL AUTO_INCREMENT ,
ADD UNIQUE INDEX `product_id_UNIQUE` (`product_id` ASC) VISIBLE
在语法上对我来说看起来不错,所以我不确定为什么它说有问题。表中有一行数据。
编辑
根据mysql --version
,我的xampp 服务器当前使用的是Ver 15.1 Distrib 10.1.36-MariaDB, for Win32 (AMD64)
版本,因此建议的cmets 副本可能不适用。
【问题讨论】:
MySQL Workbench: Error in query (1064): Syntax error near 'VISIBLE' at line 1的可能重复 还要检查:***.com/a/52915425/2469308 和 ***.com/a/53041025/2469308 不适用,我使用的是 MySQL ver 15 MySQL 中没有版本 15。您正在使用 Mariadb。我不确定 Mariadb 是否支持VISIBLE
关键字。只需删除 add unique index ..
部分之后的那个词并再次检查。
我会尝试,但我希望这是可以理解的,为什么当我看到这些答案时我认为它不适用
【参考方案1】:
根据 cmets 中的帮助,已经给出了其他答案的建议,但要澄清的是,在 XAMPP 服务器的具体情况下,它的 Maria-DB 软件是最新的,“可见”这个词可能不会此时得到支持。删除“可见”的工作允许脚本运行并将唯一和自动增量属性添加到主键。
ALTER TABLE `madewix5_lindsey_website_data`.`products`
CHANGE COLUMN `product_id` `product_id` INT(3) NOT NULL AUTO_INCREMENT ,
ADD UNIQUE INDEX `product_id_UNIQUE` (`product_id` ASC);
【讨论】:
以上是关于添加自动增量和唯一表 ID 失败的主要内容,如果未能解决你的问题,请参考以下文章
如何将自动增量 ID 列添加到从 SQL 查询生成的表中? [复制]