1

MySQL 引擎:InnoDB

我有一张桌子,我需要两个字符串作为主键。这样做的原因是因为我希望 ON DUPLICATE KEY UPDATE 取决于这两个字符串。我怎么做?提前泰。

4

2 回答 2

5

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

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

于 2012-11-10T11:24:19.873 回答
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)
)
于 2012-11-10T11:21:52.030 回答