Cześć, mam następujące zadanie do wykonania:
Dokonaj modyfikacji tabeli Kolejki poprzez dodanie kolumny wirtualnej o nazwie dzien_tygodnia zawierającej słowną nazwę dnia tygodnia odbywania się danej kolejki (na podstawie kolumny data_kolejki) ze zdefiniowanym ograniczeniem umożliwiającym przyjmowanie kolumnie tylko jeden z dwóch fraz: środa lub sobota.
Próbowałem rozwiązać je następującym poleceniem:
alter table Kolejki add dzien_tygodnia varchar2(100) as (to_char(data_kolejki, 'day')) add constraint dzien_tygodnia_ch check (dzien_tygodnia in ('środa', 'sobota'));
No i niby działa ale przy wstawianiu wartości do tabeli Kolejki poleceniem którego nie mogę modyfikować:
insert into kolejki (id_kolejki, sezon, nr_kolejki, data_kolejki) values (1, '2019/2020', 1, to_date('14.09.2019', 'dd.mm.yyyy') );
Otrzymuję błąd o treści:
ORA-02290: naruszono więzy CHECK (SYSTEM.DZIEN_TYGODNIA_CH)
Czy jest ktoś w stanie pomóc, ewentualnie naprowadzić na prawidłowe zmodyfikowanie tabeli, tak aby polecenie wstawiające dane działało poprawnie? Wydaje mi się, że błąd jest gdzieś w sposobie pobierania dnia z daty, ale nie potrafię tego "ogarnąć".