Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL тригери и SUM()

Това е, което е известно като проблем с "Мутиращата таблица". Това, което се свежда до това, е, че на тригер за ред не е разрешен достъп до други редове в същата таблица, защото няма гаранция, че редовете ще бъдат актуализирани в определен ред, наред с други неща.

Първо, наистина не трябва да се опитвате да съхранявате total_income, когато можете лесно да го изчислите, когато е необходимо. Въпреки това мисля, че можете да правите каквото искате, като направите нещо като

CREATE TRIGGER family_income_update
  AFTER UPDATE ON family
  FOR EACH ROW 
BEGIN
  UPDATE student
    SET total_income = total_income + (NEW.income - OLD.income)
    WHERE student.id_student = NEW.id_student;
END;

Идеята е да се модифицира student.total_income спрямо предишната му стойност, тъй като можете да препратите само family.income спрямо предишната му стойност.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. По-кратък неповтарящ се буквено-цифров код от UUID в MySQL

  2. Вземете последно изтрит ID в MySQL

  3. Как да покажа изображение от база данни с помощта на php

  4. Как да проектираме филмова база данни?

  5. как да използвам променлива в изявление за създаване на база данни