我想在mysql中为表添加另一个主键。 我用phpmyadmin与mysql服务器通信。 当我单击所需字段的主图标时,它会给我这个错误:
#1075 - 表定义不正确;只能有一个自动列,必须将其定义为键
已编辑:
这是查询:
ALTER TABLE `files` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `file_type` )
我该怎么做?
答案 0 :(得分:6)
正如名称“主要”键所示,可能只有其中一个(参考:Highlander)。
你可能想要尝试的是一个独特的钥匙,它就像大多数人一样。如果第二次使用Auto_increment似乎不符合任何要求 - 两个字段的重点是什么?
答案 1 :(得分:3)
我相信你的情况,你需要的是一个复合键。我不知道你的表格结构,但这是一个从here,
取得的一般例子CREATE TABLE track(
album CHAR(10),
disk INTEGER,
posn INTEGER,
song VARCHAR(255),
PRIMARY KEY (album, disk, posn)
)
在这种情况下,有3列的组合,可以根据需要避免重复记录。如果我在理解你的情景时有任何错误,请告诉我。
答案 2 :(得分:0)
错误消息说出来,我想:
auto_increment列必须是key。
首先使用此查询:
ALTER TABLE 'files' CHANGE 'id' 'id' INT( 10 ) UNSIGNED NOT NULL;
这将删除auto_increment。
另外,我建议使用其他答案建议的Uniqe键。我相信每个表中应该总是(几乎)是一个Id列。
答案 3 :(得分:0)
我们只能为表格提供一次主键。您可以更喜欢UNIQUE KEY来防止重复记录
ALTER TABLE人员 添加独特(P_Id)
答案 4 :(得分:-1)
您可以将所需的所有字段标记为主键,包括现有字段。系统内部将删除现有系统,并将设置您标记的所有内容。