Sql предотвратить дубликаты

0

У меня есть таблица MySql с именем "service":

*Table Service*
PK serv_ID  Int(2)
Address Varchar(20)
Date Date

Чем у меня есть табличное имя "материалы":

*Table Materials*
 PK Mat_ID Int(2)
 Stock_Qty Int(2)
 Unit enum(m,u)

Теперь, для каждой службы, я потратил некоторые материалы, и я сделал таблицу:

Service_Material
FK serv_ID
Fk Mat_ID 
Qty int(2)

Как я могу предотвратить каждую услугу, не повторяйте один и тот же материал?

Теги:
database
foreign-keys
relational-database

1 ответ

2
Лучший ответ

Используйте уникальное ограничение или индекс:

create unique index unq_service_material_serv_mat on service_material(serv_id, mat_id);

Вы также можете добавить это как ограничение (вместо этого):

alter table service_material
    add constraint unq_service_material_serv_mat
        unique(serv_id, mat_id);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню