Валидная строка не может пройти проверку при добавлении к таблице

Структура таблицы seats:

CREATE TABLE seats
(   aircraft_code char(3) NOT NULL,         -- код самолета, IATA
    seat_no varchar(4) NOT NULL,            -- Номер места
    fare_condition varchar(10) NOT NULL,        -- Класс обслуживания
    CHECK(fare_condition IN ('Economy', 'Comfort', 'Business')),
    PRIMARY KEY(aircraft_code, seat_no),
    FOREIGN KEY(aircraft_code) 
           REFERENCES aircrafts(aircraft_code)
           ON DELETE CASCADE
);


INSERT INTO seats VALUES ('ABA', '1', 'Business');

Получаю вот такое сообщение:

ОШИБКА: новая строка в отношении "seats" нарушает ограничение-проверку "seats_fare_condition_check" ПОДРОБНОСТИ: Ошибочная строка содержит (ABA, 1, Business).

Но вот такую строку таблица принимает без ошибок.

INSERT INTO seats VALUES ('DYR', '2', 'Economy');

Ответы (1 шт):

Автор решения: Aziz Umarov

У Вас срабатывает CHECK(fare_condition IN ('Economy', 'Comfort', 'Business')). Скорее всего у Вас в INSERT INTO seats VALUES ('ABA', '1', 'Business'); перемешались кириллица с латиницей перебейте буквы и проверьте.

→ Ссылка