2012-11-10 133 views

回答

4

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

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

+0

因此,如果它们是'UNIQUE',DUPLICATE KEY UPDATE仍然有效? 还有更多...这些字段中可能存在相同数据的重复,只是组合不同。有什么建议么??或MySQL代码? –

+0

@DeusDeceit是的,它的工作方式与主键冲突几乎完全一样。 –

+0

如何将两个字段组合为UNIQUE? –

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) 
) 
+0

能外键也可以是复合主键内? –

相关问题