Nej. Værdien for DEFAULT-udtrykket skal være en konstant. (Den eneste undtagelse fra denne regel er brugen af CURRENT_TIMESTAMP
som standardværdi for en TIMESTAMP
kolonne.)
Som et alternativ kan du bruge en TRIGGER til at indstille en værdi for en kolonne, når en række indsættes eller opdateres.
Inden for en FØR INSERT FOR EACH ROW-udløser kan du f.eks. udføre beregninger fra værdier leveret for andre kolonner og/eller forespørge data fra andre tabeller.
REDIGER
For eksemplet givet i EDIT af spørgsmålet, et eksempel på et udgangspunkt for en triggerdefinition:
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