Здравствуйте.
Есть таблица
Shows
show_id int(11) AUTO_INCREMENT
show_banner_id int(11)
show_time timestamp CURRENT_TIMESTAMP
show_program_id int(11)
stat_main
id int(11) AUTO_INCREMENT Primary
sm_program_id int(11)
sm_banner_id int(11)
sm_banner_shows int(11)
sm_date date
логика такова -
В первую производится полная запись каждого показа баннера (с точностью впроть до секунды),
во вторую должно писаться количество показов по конкретной программе баннеру и дню.
Собственно написан следующий нерабочий триггер
CREATE TRIGGER `add_count` AFTER INSERT ON `Shows`
FOR EACH ROW BEGIN
INSERT INTO `stat_main` SET
`sm_banner_shows`= 1,
`sm_banner_id`=NEW.`show_banner_id` ,
`sm_program_id`=NEW.`show_program_id` ,
`sm_date`=DATE(FROM_UNIXTIME(NEW.`show_time`)),
`id`=(SELECT IFNULL(MAX(id),0)+1 as id FROM `stat_main`
WHERE
`sm_banner_id`=NEW.`show_banner_id` AND
`sm_program_id`=NEW.`show_program_id` AND
`sm_date`=DATE(FROM_UNIXTIME(NEW.`show_time`)))
ON DUPLICATE KEY UPDATE `sm_banner_shows` = `sm_banner_shows` + 1;
END;
собственно проблема в этой строке
`id`=(SELECT IFNULL(MAX(id),0)+1 as id FROM `stat_main` WHERE `sm_banner_id`=NEW.`show_banner_id` AND `sm_program_id`=NEW.`show_program_id` AND `sm_date`=DATE(FROM_UNIXTIME(NEW.`show_time`)))
каким образом можно получить id строки с конкретным banner_id, program_id и даты? причем если такого нет нужен максимум +1? как обратиться к результату select? потому что сам запрос на выбор id работает корректно, не работает связка id=select()...
или каким другим способом это реализовать?
Заранее спасибо.