#python #sql #postgresql #datetime #check-constraints
#python #sql #postgresql #дата и время #проверка-ограничения
Вопрос:
Я работаю с pgadmin4-postgresql и создал таблицу со столбцами name, age и email. Я хочу добавить условие для столбца возраста, но не могу. Например, возрастной интервал составляет от 18 < возраст < 90, и когда я пытаюсь добавить нового человека в возрасте 95 лет, возникает ошибка..
input =int('Age:')
if 18 < input < 90:
print("Age value must be between interval")
Как я могу реализовать этот код python на postgresql, пожалуйста, помогите мне? Спасибо…
Комментарии:
1. Вы не должны хранить возраст в своей таблице, потому что люди, как правило, становятся старше с каждым годом, и значения возраста скоро устареют. Вместо этого сохраните DOB.
2. Что вы ожидаете, когда 89-летнему человеку в вашей таблице исполнится 90?
3. @jarlh Я согласен с вашим мнением, но я хотел узнать здесь, как реализовать условие в postgresql, и я хотел объяснить это с возрастом в примере.
Ответ №1:
По сути, вы описываете концепцию ограничения проверки SQL. Это связано с определением вашей таблицы:
create table mytable (
id serial primary key,
name text,
email text,
age int,
check(age > 18 and age < 90)
)
Ограничение гарантирует, что значения, сохраненные в столбце age
, принадлежат заданному диапазону; если предпринимается попытка вставить недопустимое значение, возникает ошибка, и значение отклоняется.
Обратите внимание, что сохранение возраста обычно не является хорошей практикой; возраст буквально постоянно меняется. Хранение даты рождения намного лучше.
Комментарии:
1. Большое вам спасибо @GMB.