>_ IzzyLab

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

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. отрицательная цена отклоняется

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