如何将密钥对设为主密钥?

时间:2011-12-04 15:44:17

标签: php mysql database database-design

我的表不需要特定字段作为主键。我可以添加一个自动增量ID字段,但在数据库查询中根本不会使用它......

我是否可以将一个独特的钥匙作为主要钥匙?

UNIQUE KEY由两个配对的字段组成:

a VARCHAR(64) NOT NULL,
b VARCHAR(64) NOT NULL,
UNIQUE KEY uk_ab(a,b)

3 个答案:

答案 0 :(得分:6)

当然(不需要UNIQUE KEY):

PRIMARY KEY (a, b)

查看documentation

  

PRIMARY KEY是一个唯一索引,其中所有键列必须定义为NOT NULL。如果它们没有显式声明为NOT NULL,那么MySQL会隐式声明它(并且默默地)。一个表只能有一个PRIMARY KEYPRIMARY KEY的名称始终为PRIMARY,因此不能用作任何其他类型索引的名称。

  

PRIMARY KEY可以是多列索引。但是,您无法使用列规范中的PRIMARY KEY键属性创建多列索引。这样做只会将单列标记为主列。您必须使用单独的PRIMARY KEY(index_col_name, ...)子句。

答案 1 :(得分:1)

不确定这是否有用......

PRIMARY KEY uk_ab(a,b)

答案 2 :(得分:1)

如果您的表已经有唯一约束,那么您需要添加主键(ALTER TABLE [table_name] ADD CONSTRAINT [constraint_name] PRIMARY KEY (a,b)),并删除现有的唯一约束。否则,您将在同一列上有2个唯一索引 如果您创建新表格,请使用其他人建议的PRIMARY KEY(a,b)代替UNIQUE(a,b)