Joywork/sql/area_price.sql

41 lines
1.6 KiB
MySQL
Raw Normal View History

2026-05-22 20:21:54 +02:00
-- Добавляем столбец area_price в complex_rooms
ALTER TABLE complex_rooms ADD COLUMN area_price DECIMAL(12,2) DEFAULT NULL;
-- Обновляем все существующие квартиры( для всех устанавливаем area_price считая total_amount / area)
UPDATE complex_rooms
SET area_price = total_amount / area
WHERE (area_price IS NULL OR area_price = 0)
AND area > 0;
-- Создание триггера, который при добавлении в базу новой записи complex_rooms будет автоматически считать
-- цену за квадратный метр area_price
-- Для этого в таблице complex_rooms создаем новый триггер где
-- Name calculate_area_price_before_insert
-- Время before
-- Собитые Insert
-- а определение SQL внизу
IF NEW.area IS NOT NULL AND NEW.total_amount IS NOT NULL AND NEW.area > 0 THEN
SET NEW.area_price = NEW.total_amount / NEW.area;
ELSE
SET NEW.area_price = NULL;
END IF;
--Обновление цени area_price при изменение в total_amount или area
-- Для этого в таблице complex_rooms создаем новый триггер где
-- Name calculate_area_price_before_update
-- Время before
-- Собитые update
-- а определение SQL внизу
IF NEW.area IS NOT NULL AND NEW.total_amount IS NOT NULL AND NEW.area > 0 THEN
SET NEW.area_price = NEW.total_amount / NEW.area;
ELSE
SET NEW.area_price = NULL;
END IF;