2012-01-09 43 views
-1

我想将另一个主键添加到mysql中的表中。 我使用phpmyadmin与mysql服务器进行通信。 当我点击一次图标所需的字段它给了我这个错误:将另一个主键添加到mysql中的表中

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

编辑:

这里的查询:

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

我该怎么办呢?

+0

为什么您需要一个主键? – 2012-01-09 09:36:51

+0

你只能有一个主键(尽管它可能是几列的组合),但如果你给出了一个你想达到的具体例子,那么可能有另一个解决方案。 – 2012-01-09 09:37:11

+0

@Shakti:我需要三列的组合来避免一些重复的记录。 – 2012-01-09 09:39:14

回答

6

正如名称“主要”键所说,可能只有一个(ref:Highlander)。

你可能想要尝试的是一个独特的关键,它就像大多数紫袍的主要作用一样。如果第二次使用Auto_increment,似乎不能满足任何购买者的要求 - 两个字段携带完全相同的信息的目的是什么?

0

错误消息说,我认为:

auto_increment列必须是键。

所以第一次使用此查询:

ALTER TABLE 'files' CHANGE 'id' 'id' INT(10) UNSIGNED NOT NULL; 

这将删除AUTO_INCREMENT。

此外,我建议由其他答案建议的Uniqe键。我相信每个表中都应该有(几乎)Id列。

3

我相信你的情况,你需要的是一个组合键。我不知道你的表结构,但这里是从here采取一般的例子,

CREATE TABLE track(
    album CHAR(10), 
    disk INTEGER, 
    posn INTEGER, 
    song VARCHAR(255), 
    PRIMARY KEY (album, disk, posn) 
) 

在这种情况下,有3列,其避免了重复的记录,你需要的组合。如果我在理解您的场景时遇到任何错误,请告诉我。

-1

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

0

我们只能给一个表的主键一次。您可以选择UNIQUE KEY以防止重复记录

ALTER TABLE Persons ADD UNIQUE (P_Id)

相关问题