У меня есть 2 таблицы MySQL, , которые будут обновлены новыми строками, которые необходимо агрегировать (ТАБЛИЦА 1). и тот, который должен быть автоматически заполнен агрегированными данными с помощью триггера mysql (ТАБЛИЦА 2).MySQL Trigger для объединения строк одной таблицы в другую таблицу
Учитывая таблицы схемы:
Пример ТАБЛИЦА 1: Таблица агрегатироваться
уникальный ключ uniqueid
(uniqueid
, ci
, ai
, status
)
Пример Таблица 2: Совокупный стол
UNIQUE KEY IX_Unique_daily
(ai
, ci
, day
)
SQL-триггера должно быть что-то вроде:
DELIMITER $$
CREATE TRIGGER yii_botclient2
. st_unqiue_trigger
ПОСЛЕ ВСТАВКИ ON yii_botclient2
. st_unique
ДЛЯ КАЖДОЙ ROW НАЧАТЬ
SET @myDay := DATE(NEW.date);
SET @today = DATE();
SET isDaily := SELECT COUNT(id) FROM `yii_botclient2`.`st_daily` WHERE `ai` = NEW.ai AND st_daily.ci = NEW.ci AND st_daily.day = @myDay;
SET myDaily = IFNULL(isDaily, 'No');
IF (myDaily = 'No') THEN
IF NEW.status = 0
INSERT INTO st_daily (`day`, `ai`,`ci`,`impressions`,`updated`) VALUES (@today,NEW.ai,NEW.ci,1,NOW());
ELSEIF NEW.status = 1
INSERT INTO st_daily (`day`, `ai`,`ci`,`clicks`,`updated`) VALUES (@today,NEW.ai,NEW.ci,1,NOW());
ELSEIF NEW.status = 2
INSERT INTO st_daily (`day`, `ai`,`ci`,`leads`,`updated`) VALUES (@today,NEW.ai,NEW.ci,1,NOW());
ELSEIF NEW.status = 3
INSERT INTO st_daily (`day`, `ai`,`ci`,`ftds`,`updated`) VALUES (@today,NEW.ai,NEW.ci,1,NOW());
END IF;
ELSE
IF NEW.status = 0
UPDATE st_daily SET `impressions` = `impressions` + 1 WHERE st_daily.ci = NEW.ci AND st_daily.ai = NEW.ai AND st_daily.day = @myDay;
ELSEIF NEW.status = 1
UPDATE st_daily SET `clicks` = `clicks` + 1 WHERE st_daily.ci = NEW.ci AND st_daily.ai = NEW.ai AND st_daily.day = @myDay;
ELSEIF NEW.status = 2
UPDATE st_daily SET `leads` = `leads` + 1 WHERE st_daily.ci = NEW.ci AND st_daily.ai = NEW.ai AND st_daily.day = @myDay;
ELSEIF NEW.status = 3
UPDATE st_daily SET `ftds` = `ftds` + 1 WHERE st_daily.ci = NEW.ci AND st_daily.ai = NEW.ai AND st_daily.day = @myDay;
END IF;
END IF;
END$$
DELIMITER;
Не могли бы вы помочь с помощью MySQL Trigger?
Какая у вас проблема? –
Я не могу выполнить запрос триггера, и я не понимаю, что с ним не так. –