File indexing completed on 2024-04-21 06:00:36

0001 
0002 DROP PROCEDURE IF EXISTS `generate_stat_views_today`;
0003 
0004 DELIMITER $$
0005 USE `pling`$$
0006 CREATE
0007     DEFINER = CURRENT_USER PROCEDURE `generate_stat_views_today`()
0008 BEGIN
0009 
0010     DROP TABLE IF EXISTS `temp_stat_views_today`;
0011 
0012     CREATE TABLE `temp_stat_views_today`
0013     (
0014         `id`            INT      NOT NULL AUTO_INCREMENT,
0015         `project_id`    INT(11)  NOT NULL,
0016         `count_views`   INT(11)  NULL DEFAULT 0,
0017         `count_visitor` INT(11)  NULL DEFAULT 0,
0018         `last_view`     DATETIME NULL DEFAULT NULL,
0019         PRIMARY KEY (`id`),
0020         INDEX `idx_project` (`project_id` ASC)
0021     )
0022         ENGINE = MyISAM
0023     AS
0024     SELECT `project_id`,
0025            COUNT(*)                               AS `count_views`,
0026            COUNT(DISTINCT `stat_page_views`.`ip`) AS `count_visitor`,
0027            MAX(`stat_page_views`.`created_at`)    AS `last_view`
0028     FROM `stat_page_views`
0029     WHERE (`stat_page_views`.`created_at`
0030         BETWEEN DATE_FORMAT(NOW(), '%Y-%m-%d 00:00') AND DATE_FORMAT(NOW(), '%Y-%m-%d 23:59')
0031               )
0032     GROUP BY `project_id`;
0033 
0034     IF EXISTS(SELECT `table_name`
0035               FROM `INFORMATION_SCHEMA`.`TABLES`
0036               WHERE `table_schema` = DATABASE()
0037                 AND `table_name` = 'stat_page_views_today_mv')
0038     THEN
0039         ALTER TABLE `stat_page_views_today_mv`
0040             RENAME TO `old_stat_views_today_mv`;
0041 
0042     END IF;
0043 
0044     ALTER TABLE `temp_stat_views_today`
0045         RENAME TO `stat_page_views_today_mv`;
0046 
0047     DROP TABLE IF EXISTS `old_stat_views_today_mv`;
0048 
0049 END $$
0050 
0051 DELIMITER ;