mysql重复检查2列一起

时间:2013-01-20 13:53:26

标签: php mysql sql unique-constraint

|ID|owner|page|value|
|1 |0001 |home|demo |
|2 |0003 |home|demo |
|3 |0001 |home|demo |

我想要的是阻止所有者为同一页面设置2个值。

所以我目前的approch是

|ID|owner|page|value|unique_check
|1 |0001 |home|demo |0001_home
|2 |0003 |home|demo |0003_home
unique_check is (unique key).

现在当我在php端插入此表时,我设置了unique_check = owner_page 并且由于unique_check是一个唯一的列mysql会给出错误,如果该所有者已经为此页面设置了值,则不插入。

但我的问题是,有没有办法在没有php帮助或没有额外'unique_check'列的情况下在mysql上执行此操作? (一起设置为2列唯一)

如果没有办法将unique-constrain设置为2列,我可以设置unique_check默认值= owner_page,所以我不担心从php那样做吗?

1 个答案:

答案 0 :(得分:3)

是的,添加UNIQUE约束,

ALTER TABLE tableNAME ADD CONSTRAINT tb_UQ UNIQUE (owner, page)