Практическое задание

Эта задача — шаг 19 курса «SQL на SQLite»

SQLite: ограничение CHECK на колонку

средне

Создай в базе /root/store.db таблицу products(id INTEGER PRIMARY KEY, name TEXT, price INTEGER) с ограничением CHECK, которое запрещает неположительную цену: price должно быть строго больше 0. Схема должна пропускать корректную вставку (цена > 0) и отклонять «плохую» (цена 0 или отрицательная).

Что потренируешь:
  • check
  • ограничения
  • create table
  • валидация данных
  • sqlite3

Разбор темы

Ограничение CHECK задаёт логическое условие, которому обязано удовлетворять значение в строке; если условие ложно, вставка или обновление отклоняются с ошибкой. В отличие от внешних ключей, CHECK действует всегда и не требует включать никакой PRAGMA. Объявляют его в CREATE TABLE — сразу после колонки или отдельным пунктом, а внутри скобок пишут условие с именем колонки. Так база сама защищает себя от заведомо некорректных данных на уровне схемы.

Что проверяется

  1. корректная вставка проходит
  2. отрицательная цена отклоняется
  3. нулевая цена отклоняется

Как это выглядит