Ne. Hodnota pro klauzuli DEFAULT musí být konstanta. (Jedinou výjimkou z tohoto pravidla je použití CURRENT_TIMESTAMP
jako výchozí hodnota pro TIMESTAMP
sloupec.)
Alternativně můžete použít TRIGGER k nastavení hodnoty pro sloupec při vložení nebo aktualizaci řádku.
Například v rámci spouštěče BEFORE INSERT FOR EACH ROW můžete provádět výpočty z hodnot dodaných pro jiné sloupce a/nebo dotazovat data z jiných tabulek.
UPRAVIT
Pro příklad uvedený v ÚPRAVĚ otázky, příklad výchozího bodu pro definici spouštěče:
CREATE TRIGGER mytable_bi
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
SET NEW.percentage = (100.0 * NEW.marks) / NULLIF(NEW.total_marks,0);
END