Mysql
 sql >> Database >  >> RDS >> Mysql

Esecuzione del calcolo nel valore MySQL predefinito

No. Il valore per la clausola DEFAULT deve essere una costante. (L'unica eccezione a questa regola è l'uso di CURRENT_TIMESTAMP come valore predefinito per un TIMESTAMP colonna.)

In alternativa, puoi utilizzare un TRIGGER per impostare un valore per una colonna quando una riga viene inserita o aggiornata.

Ad esempio, all'interno di un trigger PRIMA INSERIRE PER OGNI RIGA, puoi eseguire calcoli dai valori forniti per altre colonne e/o interrogare dati da altre tabelle.

MODIFICA

Per l'esempio fornito nell'EDIT della domanda, un esempio di punto di partenza per una definizione di trigger:

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