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

时间:2014-03-12 21:32:43

标签: mysql sql mysql-workbench alter-table

我尝试改变表格" 我需要一个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`;
你帮我吗?

THX

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

SELECT ID, ID AS SORTPOS, NAME FROM List

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

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