MySQL - tworznie constraintu "CHECK"

0

Chcę wymuszać na pewenj kolumnie "ocena" aby dopuszczała tylko pewne wartości. Podobno można to zrobić przez Constraint typu CHECK. Piszę polecenia tego Constraintu, baza je przyjmuje ale potem w danej kolumnie nadal mogę umieścić dowolną wartość. Oto mój kod:

ALTER TABLE films ADD CONSTRAINT const_1 CHECK (ocena = 'good' or ocena = 'average' or ocena='bad');
lub
ALTER TABLE films ADD CONSTRAINT const_1 CHECK (ocena IN ('good', 'average', 'bad' );

Nie wiem czy to z IN jest w ogóle dopuszczalne, gdzieś widziałem coś podobnego.

Co robię nie tak że to nie działa??

0

MySQL parsuje, ale ignoruje CHECK. Można ten problem ominąć pisząc trigger, który wywołuje błąd w przypadku wykrycia wartości spoza zakresu.

http://forge.mysql.com/wiki/Triggers#Emulating_Check_Constraints

0

Dzięki.

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