添加自动增量和唯一表 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 查询生成的表中? [复制]

SQL Server 将自动增量主键添加到现有表

将 _id 从 ObjectId 更改为正常的唯一自动增量整数

如何在php中添加自动增量主键

将自动增量列添加到按日期排序的现有表中