我在Idaq托管包上使用Webmin来管理我的MySQL数据库。我已从先前的主机导入数据库,现在发现我无法更改特定表中的任何数据,因为错误“此表中的数据无法编辑,因为它没有主键。”
在php脚本中,我可以更改数据,但确实需要从控制面板更改数据。
当我尝试创建主键字段时,我收到以下错误“无法保存字段:SQL alter table userbase
add referenceNumber
smallint not null auto_increment failed:表定义不正确;可以有只有一个自动列,必须将其定义为键“
我很清楚任何桌子都应该包含主键,这是我的错误,但有人可以提供一些帮助吗?
答案 0 :(得分:2)
这是因为您没有同时将其设置为密钥,因此它在and it must be defined as a key
部分失败,将密钥放在最后。
使用
ALTER TABLE tableName ADD autoIncrementColumn MEDIUMINT NOT NULL AUTO_INCREMENT KEY
Johan在评论中的额外信息
@Mick,要添加到PEZ的答案,如果您不提供主键, MySQL添加了一个隐藏的主整数自动增量键。为了 覆盖隐藏键,alter table语句必须指定 添加一个新的字段并在同一个中分配新的PK 行,否则隐藏的PK将阻止更改。