1

我在 Idaq 托管包上使用 Webmin 来管理我的 MySQL 数据库。我从以前的主机导入了数据库,现在发现我无法更改特定表中的任何数据,因为出现错误“无法编辑此表中的数据,因为它没有主键。”

在 php 脚本中,我可以更改数据,但确实需要从控制面板进行更改。

当我尝试创建主键字段时,出现以下错误“保存字段失败:SQL alter table userbaseadd referenceNumbersmallint not null auto_increment failed:表定义不正确;只能有一个自动列,必须将其定义为键”

我很清楚任何表都应该包含一个主键,这是我的错误,但是任何人都可以提供一些帮助吗?

4

1 回答 1

2

这是因为您没有同时将其设置为密钥,所以它使and it must be defined as a key部分失败,将密钥放在最后。

采用

ALTER TABLE tableName ADD autoIncrementColumn MEDIUMINT NOT NULL AUTO_INCREMENT KEY

评论中来自约翰的额外信息

@Mick,要添加到 PEZ 的答案,如果您不提供主键,MySQL 会添加一个隐藏的主整数自动增量键。为了覆盖隐藏键,alter table 语句必须在同一行中指定添加新字段和分配新 PK,否则隐藏 PK 会阻塞更改。

于 2011-08-25T13:48:33.837 回答