列的组合作为表的主键

时间:2014-10-20 07:28:47

标签: mysql sql

是否可以将列组合成表格的主键?
例如我有:

ID_1 | ID_2 | ID_3 | ID_4 | VALUE ----- ------ ------ ------ ------ 1 1 1 1 A 1 2 1 1 B 2 1 1 1 A

我希望ID_1,ID_2,ID_3和ID_4的值组合成主键。 感谢

2 个答案:

答案 0 :(得分:1)

- 第一个解决方案:

  CREATE TABLE IF NOT EXISTS tableName (    
       id_1 INT NOT NULL,
       id_2 INT NOT NULL,
       id_3 INT NOT NULL,
       id_4 INT NOT NULL,
       value VARCHAR(10) NULL,
       CONSTRAINT pk PRIMARY KEY (id_1, id_2, id_3, id_4)
    );

- 第二个解决方案: 使用关联表。

答案 1 :(得分:0)

有可能,但应该避免。主键应该是一列。

CREATE TABLE `test`.`new_table` (
  `id_1` INT NOT NULL,
  `id_2` INT NOT NULL,
  `id_3` INT NOT NULL,
  `id_4` INT NOT NULL,
  `value` VARCHAR(45) NULL,
  PRIMARY KEY (`id_1`, `id_2`, `id_3`, `id_4`));