在mysql中向表中添加另一个主键

时间:2012-01-09 09:32:46

标签: mysql phpmyadmin primary-key

我想在mysql中为表添加另一个主键。 我用phpmyadmin与mysql服务器通信。 当我单击所需字段的主图标时,它会给我这个错误:

  

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

已编辑:

这是查询:

ALTER TABLE `files` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `file_type` ) 

我该怎么做?

5 个答案:

答案 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)

您可以将所需的所有字段标记为主键,包括现有字段。系统内部将删除现有系统,并将设置您标记的所有内容。