Если вы хотите создать ограничение, чтобы start + duration
всегда было меньше end
в вашей таблице, тогда следующий синтаксис:
CREATE TABLE test (
start TEXT,
end TEXT,
duration INTEGER,
CHECK (DATETIME(start, duration || ' minute') < end)
);
Нет необходимости объединять '+'
. Это будет работать, только если ваши столбцы даты имеют единственный допустимый формат даты для SQLite - YYYY-MM-DD hh:mm:ss
. Обратите внимание: если таблица уже существует, вы не можете добавить ограничение. Вам нужно будет создать новую таблицу с указанной выше схемой (включая ограничение), скопировать данные из старой таблицы в новую таблицу (если они соответствуют условию ограничения), удалить старую таблицу и переименовать новую таблицу.