错误1075:表定义不正确;只能有一个自动列,必须将其定义为键

问题描述 投票:0回答:2

我尝试“改变表格”我需要一个AI字段,而不是键...“列表”

ID INT(11):PK Not Null AutoIn..
Name VARCHAR
UserID INT(11):FK Not Null
edit BOOL

现在我还需要一个字段“sortpos”作为AI。我尝试使用MySQL Workbench

ALTER TABLE `**mydb**`.`List` 
ADD COLUMN `sortpos` INT(11) NOT NULL AUTO_INCREMENT AFTER `edit`;

你能帮我吗?

谢谢

mysql sql mysql-workbench alter-table
2个回答
1
投票

您无法获得比此更好的错误消息。您已经在表中将ID定义为自动增量。现在您尝试添加另一个字段sortpos作为自动增量,这是不允许的。一个表只能有一个自动增量,必须将其定义为主键。

从alter语句中删除AUTO_INCREMENT并创建一个触发器以增加新列。


0
投票

根据您的评论,您将用户界面与表数据混淆。该表只需要有一个ID,如果需要,可以创建如下查询:

SELECT ID, ID AS SORTPOS, NAME FROM List

但是你甚至不需要查询,你应该只在用户界面级别进行。

另外,您在评论中显示的内容仅仅是列表的标题,而不是列表本身。

© www.soinside.com 2019 - 2024. All rights reserved.