0

桌子

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

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

所以我目前的方法是

|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 中执行此操作吗?

4

1 回答 1

3

是的,添加UNIQUE约束,

ALTER TABLE tableNAME ADD CONSTRAINT tb_UQ UNIQUE (owner, page)
于 2013-01-20T13:54:44.827 回答