Не уверен, смогу ли я достичь этого с помощью ограничения mysql
, но в такой таблице, как
CREATE TABLE constraint_table (
id int PRIMARY KEY AUTOINCREMENT,
col1 int NOT NULL,
col2 int NOT NULL
)
, возможно ли иметь ограничение mysql
, так что col2
может иметь дубликаты дляданное col1
| id | col1 | col2 |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 1 |
, но значения col2
, используемые конкретным значением col1
, не могут использоваться другим значением col1
снова
| id | col1 | col2 |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 1 |
| 4 | 2 | 1 | invalid - as 1 is included in col2 values where col1 <> 2 (need to restrict this)
| 5 | 2 | 2 | invalid - as 2 is included in col2 values where col1 <> 2 (need to restrict this)
| 6 | 2 | 4 | valid - as 4 is not included in col2 values where col1 <> 2
и действительнымтаблица должна выглядеть так:
| id | col1 | col2 |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 1 |
| 4 | 2 | 3 |
| 5 | 2 | 4 |
| 6 | 2 | 4 |
Извините за плохой заголовок, я не знаю, как назвать такой сценарий.