Я надеюсь, что кто-нибудь сможет помочь мне с этим.Я хотел бы создать ограничения проверки для разных категорий водительских прав и минимального возраста для получения права.Например,
Category - Age
AM - 16
A2 - 18
A - 24
Я думаю, мне нужно сделать ряд отдельных ограничений для этого.Я думаю, что у меня есть все части, мне просто нужна помощь, чтобы собрать все это вместе.
Здесь приведен SQL-код для проверки правильности введенной категории лицензии;
ALTER TABLE ONLY public."salespeople"
ADD CONSTRAINT CHK_Driverslicense CHECK (spDriverslicense IN ('AM', 'A1', 'A2', 'A', 'B', 'BE', 'W', 'C', 'CE', 'C1', 'C1E', 'D', 'DE', 'D1', 'D1E'));
В БД есть только столбец даты рождения, но нет столбца «лет».Я могу получить возраст;
SELECT *, age(current_date, spdob)
FROM public."salespeople";
У меня проблемы с их объединением.
ALTER TABLE ONLY public."salespeople"
ADD CONSTRAINT CHK_AM_16YO CHECK (spDriverslicense = 'AM' AND (age(current_date, spdob) > 16));
Я получаю ошибку
ERROR: operator does not exist: interval > integer
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Я думаю, чтопроблема в том, что возраст = 30 лет 3 месяца 10 дней и т. д., поэтому его нельзя сравнить с целым числом.Вот где я застрял.Благодаря.