MySQL 引擎:InnoDB如何在表中创建两个varchar字段作为主键?
我有一个表,我需要两个字符串作为主键。 原因是因为我想要在这两个字符串上进行DUPLICATE KEY UPDATE。 我该怎么做? Ty提前。
MySQL 引擎:InnoDB如何在表中创建两个varchar字段作为主键?
我有一个表,我需要两个字符串作为主键。 原因是因为我想要在这两个字符串上进行DUPLICATE KEY UPDATE。 我该怎么做? Ty提前。
的过程中你不应该把它们作为主键。改为使用它们作为UNIQUE
索引,而ON DUPLICATE KEY UPDATE
仍然可以使用。我建议您将主键设置为完全独立于数据的单个整数类型列。
有一个看看这个例子:http://sqlfiddle.com/#!2/41f2d/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)
)
能外键也可以是复合主键内? –
因此,如果它们是'UNIQUE',DUPLICATE KEY UPDATE仍然有效? 还有更多...这些字段中可能存在相同数据的重复,只是组合不同。有什么建议么??或MySQL代码? –
@DeusDeceit是的,它的工作方式与主键冲突几乎完全一样。 –
如何将两个字段组合为UNIQUE? –