Вы можете использовать триггер , чтобы применить это ограничение.
Вот пример, в котором предполагается, что ваша таблица называется FuelConsumption
и содержит столбец vehicle_id
(просто предположите, что вы захотите сохранить расход топлива более чем одним транспортным средством? пункт в части КОГДА):
CREATE TRIGGER trg_bi_FuelConsumption
BEFORE INSERT ON FuelConsumption
WHEN NEW.current_mileage <= (SELECT MAX(current_mileage) FROM FuelConsumption WHERE vehicle_id = NEW.vehicle_id)
BEGIN
RAISE(ABORT, 'Fuel consumption cannot decrease');
END;
Я бы также посоветовал установить УНИКАЛЬНОЕ ограничение на комбинацию (vehicle_id, current_mileage
). Это обеспечит создание индекса (тем самым значительно ускоряя часть КОГДА триггера) и будет перехватывать идентичные значения даже перед триггером.
Если вы не хотите добавлять ограничение UNIQUE, то по крайней мере добавьте (неуникальный) индекс к вашей таблице для этих двух столбцов.