Вы можете использовать CREATE TRIGGER
в таблице, чтобы вычислить и установить новое соотношение затронутых строк:
CREATE TRIGGER upd_ratio BEFORE UPDATE ON table_name
FOR EACH ROW
BEGIN
SET NEW.ratio = NEW.advance / NEW.dep;
END
В UPDATE
и пересчитать все записи, которые вы можетеиспользуйте следующий оператор UPDATE
.Вы должны выполнить это один раз после создания триггера для инициализации столбца ratio
.
UPDATE `table_name` SET `ratio` = `advance` / `dep`
демонстрация на dbfiddle.uk
Youтакже можно использовать CREATE VIEW
для создания представления таблицы (без столбца ratio
).Вы можете динамически вычислять столбец ratio
и вам не нужно сохранять и пересчитывать значение после UPDATE
:
CREATE VIEW view_name AS SELECT *, advance / dep AS ratio FROM table_name;
demo на dbfiddle.uk
Примечание: Поскольку @ P.Salmon также упоминается в комментариях , вам необходимо использовать обратные кавычки вместо одинарных кавычек.Ваше текущее заявление UPDATE
недействительно.