如何在表中将两个varchar字段作为主键?

时间:2012-11-10 11:20:39

标签: mysql innodb composite-primary-key

的MySQL 引擎:InnoDB

我有一个表,我需要两个字符串作为主键。 这是因为我希望ON DUPLICATE KEY UPDATE取决于这两个字符串。 我怎么做? Ty提前。

2 个答案:

答案 0 :(得分:4)

您不应将它们用作主键。请将它们用作UNIQUE索引,ON DUPLICATE KEY UPDATE仍可使用。我建议您将主键设置为完全独立于数据的单个整数类型列。

看一下这个例子:http://sqlfiddle.com/#!2/41f2d/1

答案 1 :(得分:1)

您可以更改表并将这两列定义为主键

ALTER TABLE myTable ADD PRIMARY KEY (colA, colB);

或在创建表格期间

CREATE TABLE myTable
(
    colA INT, 
    colB INT,
    -- other fields here, ....
    CONSTRAINT tb_pk PRIMARY KEY (colA, colB)
)