Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Durchführen einer Berechnung im Standard-MySQL-Wert

Nein. Der Wert für die DEFAULT-Klausel muss eine Konstante sein. (Die einzige Ausnahme von dieser Regel ist die Verwendung von CURRENT_TIMESTAMP als Standardwert für einen TIMESTAMP Spalte.)

Alternativ können Sie einen TRIGGER verwenden, um einen Wert für eine Spalte festzulegen, wenn eine Zeile eingefügt oder aktualisiert wird.

Beispielsweise können Sie innerhalb eines BEFORE INSERT FOR EACH ROW-Triggers Berechnungen aus Werten durchführen, die für andere Spalten bereitgestellt werden, und/oder Daten aus anderen Tabellen abfragen.

BEARBEITEN

Für das im EDIT der Frage angegebene Beispiel ein beispielhafter Ausgangspunkt für eine 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