sql >> Databasteknik >  >> RDS >> Mysql

Utför beräkning i MySQL-standardvärde

Nej. Värdet för DEFAULT-satsen måste vara en konstant. (Det enda undantaget från denna regel är användningen av CURRENT_TIMESTAMP som standardvärde för en TIMESTAMP kolumn.)

Som ett alternativ kan du använda en TRIGGER för att ställa in ett värde för en kolumn när en rad infogas eller uppdateras.

Till exempel, inom en BEFORE INSERT FOR EACH ROW-utlösare kan du utföra beräkningar från värden som tillhandahålls för andra kolumner och/eller frågedata från andra tabeller.

REDIGERA

För exemplet som ges i EDIT av frågan, ett exempel på utgångspunkt för 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


  1. Hur skickar jag en lista som en parameter i en lagrad procedur?

  2. Det misslyckas att infoga ett JSON-kodat värde med speciella tecken i mySQL

  3. Hitta rader med dubbletter/liknande kolumnvärden MySQL

  4. MySQL - Hur man visar radvärde som kolumnnamn med hjälp av concat och group_concat