Witam, uczę się dopiero sql i mam stworzyć bazę danych. jedna z kolumn bazy danych ma mieć określone wartości:
"pole kategoria –może zawiera wartości czekolada, bombonierka, wafelki".
Może mi ktoś podpowiedzieć jak to się robi?
0
1
CONSTRAINT
lub enum types
jeśli Twoja DB to wspiera.
1
Constraint typu check jest najprostszy w tej sytuacji.
Masz też inne opcje:
- Zdefiniować słownik dozwolonych wartości i zdefiniować klucz obcy do słownika + not null na wartości danego atrybutu.
create table allowed_values (entry varchar(30) primary key );
insert into allowed_values values ('czekolada');
insert into allowed_values values ('bombonierka');
insert into allowed_values values ('wafelki');
create table foo (id int, entry varchar(30) references allowed_values(entry) not null);
insert into foo values (1,'czekolada');
insert into foo values (2,'bombonierka');
insert into foo values (3,'wafelki');
insert into foo values (4,'batonik');
- Zrobić trigger na insert, który sprawdzi czy wartość jest dozwolona i rzuci wyjątkiem jak nie jest.
0
CONSTRAINT działa ale kompletnie nie wiem jak użyć.
???kategoria VARCHAR CONSTRAINT "czekolada", "bombonierka", "wafelki");???
0
Dzięki za pomoc, wszystko śmiga (na razie). Użyłem CHECK.