dozwolone wartości przy tworzeniu tabeli

0

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?

1

CONSTRAINT lub enum types jeśli Twoja DB to wspiera.

1

Constraint typu check jest najprostszy w tej sytuacji.

Masz też inne opcje:

  1. 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');
  1. 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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1