表主要唯一索引为两列?

时间:2014-05-27 09:26:08

标签: mysql indexing

如何将表格中的主键定义为两个唯一字段?

我的表格中有几列,我有两个键:IDSOURCEID的值可以在列中出现两次,但ID + SOURCE的组合可以作为主键。

例如:

              ID | SOURCE | TEXT
              ------------------
UNIQUE -      2312 | FB | BLA BLA  
UNIQUE -      2312 | MU | BLA BLA 

我正在使用MySQL数据库。如何在两列上创建主键?

2 个答案:

答案 0 :(得分:3)

您可以使用ALTER TABLE语法,如下所示:

ALTER TABLE my_table ADD CONSTRAINT my_table_pk PRIMARY KEY (id, source);

此外,这可以在CREATE TABLE中定义,如下所示:

CREATE TABLE my_table
(
  id int,
  source varchar(3),
  text varchar(20),
  PRIMARY_KEY(id, source)
)

答案 1 :(得分:2)

添加约束以强制在两列上强制执行唯一性:

Alter table table_name add CONSTRAINT constr_ID unique (ID,SOURCE);

或者在两列上添加强制约束主键:

 Alter table table_name add  PRIMARY KEY (id, source);