sql >> Database >  >> RDS >> Mysql

Berekening uitvoeren in standaard MySQL-waarde

Nee. De waarde voor de DEFAULT-clausule moet een constante zijn. (De enige uitzondering op deze regel is het gebruik van CURRENT_TIMESTAMP als standaardwaarde voor een TIMESTAMP kolom.)

Als alternatief kunt u een TRIGGER gebruiken om een ​​waarde voor een kolom in te stellen wanneer een rij wordt ingevoegd of bijgewerkt.

Binnen een BEFORE INSERT FOR ELKE ROW-trigger kunt u bijvoorbeeld berekeningen uitvoeren op basis van waarden die voor andere kolommen zijn opgegeven en/of gegevens uit andere tabellen opvragen.

BEWERKEN

Voor het voorbeeld gegeven in de EDIT van de vraag, een voorbeeld startpunt voor een triggerdefinitie:

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


  1. Java ZonedDateTime opslaan in de database

  2. rij automatisch bijwerken na bepaalde tijd

  3. MySQL ALTER TABLE op een zeer grote tafel - is het veilig om het uit te voeren?

  4. De beste manier om records te tellen met willekeurige tijdsintervallen in Rails+Postgres