Пользовательское условие ввода pgAdmin Postgresql

#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.