@Zorgios

Как хранить в столбце сумму двух других столбцов?

Есть таблица с 3 столбцами. Допустим: x,y,z
Значения x и y меняются. Как при этом в столбце z всегда хранить сумму x и y, то есть, при любом изменении x/y Изменяться значение z по определенному правилу?
  • Вопрос задан
  • 160 просмотров
Решения вопроса 2
shevchenko__k
@shevchenko__k
Помогаю новорожденным web программистам
тут столбец z не нужен. он формируется при запросе
например
SELECT x,y, x+y AS z FROM table_name
Ответ написан
@ffosters
Используйте триггеры, примерно так:

INSERT:
CREATE TRIGGER `before_insert_table_name` BEFORE INSERT ON `table_name`
FOR EACH ROW
BEGIN
	SET `NEW`.`z` = `NEW`.`x` + `NEW`.`y`;
END


UPDATE:
CREATE TRIGGER `before_update_table_name` BEFORE UPDATE ON `table_name`
FOR EACH ROW 
BEGIN
	IF (`OLD`.`x` <=> `NEW`.`x`) = 0 OR (`OLD`.`y` <=> `NEW`.`y`) = 0 THEN
		SET `NEW`.`z` = `NEW`.`x` + `NEW`.`y`;
	END IF;
END


https://dev.mysql.com/doc/refman/8.0/en/trigger-sy...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@art055
Интересно зачем застрять , это ведь скажется на скорость
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы