配对独特的列MySQL?

时间:2013-02-02 01:46:18

标签: mysql sql database unique mysql-workbench

我想知道如何使配对列成为唯一键?

我正在研究MySQL工作台,现在我已经设置了两列(跟随,跟随)作为UQ,我假设这是唯一键?

所以当我尝试插入行时,我尝试插入

follow      following
  3              5
  3              6

但是追随是唯一的关键。但是我只想为一对做唯一的钥匙,而不是单个数字。

由于

2 个答案:

答案 0 :(得分:3)

如果我没弄错的话,你只为每一列设置了一个唯一的密钥。也许您希望复合列为UNIQUE,请尝试

ALTER TABLE tableName ADD CONSTRAINT tb_UQ UNIQUE (follow, following)

如果您运行ALTER语句,则上述示例数据有效,但如果您尝试插入另一对3, 5,则可以保证失败。

答案 1 :(得分:1)

如果您使用follow创建表作为PRIMARY键,那么RDBMS将仅基于该列强制实施唯一性。

作为JW建议的替代方案,您可以更改PRIMARY KEY:

ALTER TABLE tableName DROP PRIMARY KEY;
ALTER TABLE tableName ADD CONSTRAINT tb_UQ PRIMARY KEY (follow, following);