Я решил использовать MAX()
:
UPDATE t SET col = MAX(col, newval) [, col2 = xxx, ...]
Хотя технически оно действительно перезаписывает значение, по крайней мере оно никогда не может быть понижено.
КогдаПри использовании предложения WHERE для обеспечения соблюдения этого ограничения другие столбцы (например, col2
), на которые влияет UPDATE, не будут обновлены, если предложение запретит сопоставление на основе значения col.
Я не смог определить правильный синтаксисдля триггера, чтобы игнорировать ОБНОВЛЕНИЕ, если ограничение было нарушено.В любом случае, я полагаю, что использование триггера потребует гораздо больших затрат, чем простой вызов MAX ().