Ответ 1
Как указано в Значения по умолчанию для типа данных:
Предложение
DEFAULT value
в спецификации типа данных указывает значение по умолчанию для столбца. За одним исключением значение по умолчанию должно быть константой; это не может быть функцией или выражением. Это означает, например, что вы не можете установить значение по умолчанию для столбца даты как значение функции, напримерNOW()
илиCURRENT_DATE
. Исключением является то, что вы можете указатьCURRENT_TIMESTAMP
как значение по умолчанию для столбцаTIMESTAMP
. См. раздел 11.3.5, "Автоматическая инициализация и обновление дляTIMESTAMP
" .
Вместо этого вы можете определить триггер включения:
CREATE TRIGGER foo AFTER INSERT ON TSM_TRANSACTION_TBL FOR EACH ROW
IF NEW.REMAINING IS NULL THEN
SET NEW.REMAINING := NEW.MAX_VALUE - NEW.BOOKED_UNITS;
END IF;;