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 に答える