102 lines
3.5 KiB
SQL
102 lines
3.5 KiB
SQL
/* DateTime is invalid and it being set here will cause warnings because it isn't in the dropdown set of values in Filter edit. */
|
|
UPDATE Config SET Value='StartDateTime' WHERE Name='ZM_WEB_EVENT_SORT_FIELD' AND Value='DateTime';
|
|
|
|
SET @s = (SELECT IF(
|
|
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE()
|
|
AND table_name = 'Events'
|
|
AND column_name = 'StartDateTime'
|
|
) > 0,
|
|
"SELECT 'Column StartDateTime already exists in Events'",
|
|
"ALTER TABLE Events CHANGE StartTime StartDateTime datetime default NULL"
|
|
));
|
|
|
|
PREPARE stmt FROM @s;
|
|
EXECUTE stmt;
|
|
|
|
SET @s = (SELECT IF(
|
|
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE()
|
|
AND table_name = 'Events'
|
|
AND column_name = 'EndDateTime'
|
|
) > 0,
|
|
"SELECT 'Column EndDateTime already exists in Events'",
|
|
"ALTER TABLE Events CHANGE EndTime EndDateTime datetime default NULL"
|
|
));
|
|
|
|
PREPARE stmt FROM @s;
|
|
EXECUTE stmt;
|
|
|
|
SET @s = (SELECT IF(
|
|
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE()
|
|
AND table_name = 'Events_Hour'
|
|
AND column_name = 'StartDateTime'
|
|
) > 0,
|
|
"SELECT 'Column StartDateTime already exists in Events_Hour'",
|
|
"ALTER TABLE Events_Hour CHANGE StartTime StartDateTime datetime default NULL"
|
|
));
|
|
|
|
PREPARE stmt FROM @s;
|
|
EXECUTE stmt;
|
|
|
|
SET @s = (SELECT IF(
|
|
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE()
|
|
AND table_name = 'Events_Day'
|
|
AND column_name = 'StartDateTime'
|
|
) > 0,
|
|
"SELECT 'Column StartDateTime already exists in Events_Day'",
|
|
"ALTER TABLE Events_Day CHANGE StartTime StartDateTime datetime default NULL"
|
|
));
|
|
|
|
PREPARE stmt FROM @s;
|
|
EXECUTE stmt;
|
|
|
|
SET @s = (SELECT IF(
|
|
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE()
|
|
AND table_name = 'Events_Week'
|
|
AND column_name = 'StartDateTime'
|
|
) > 0,
|
|
"SELECT 'Column StartDateTime already exists in Events_Week'",
|
|
"ALTER TABLE Events_Week CHANGE StartTime StartDateTime datetime default NULL"
|
|
));
|
|
|
|
PREPARE stmt FROM @s;
|
|
EXECUTE stmt;
|
|
|
|
SET @s = (SELECT IF(
|
|
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE()
|
|
AND table_name = 'Events_Month'
|
|
AND column_name = 'StartDateTime'
|
|
) > 0,
|
|
"SELECT 'Column StartDateTime already exists in Events_Month'",
|
|
"ALTER TABLE Events_Month CHANGE StartTime StartDateTime datetime default NULL"
|
|
));
|
|
|
|
PREPARE stmt FROM @s;
|
|
EXECUTE stmt;
|
|
|
|
delimiter //
|
|
|
|
DROP TRIGGER IF EXISTS event_insert_trigger//
|
|
|
|
/* The assumption is that when an Event is inserted, it has no size yet, so don't bother updating the DiskSpace, just the count.
|
|
* The DiskSpace will get update in the Event Update Trigger
|
|
*/
|
|
CREATE TRIGGER event_insert_trigger AFTER INSERT ON Events
|
|
FOR EACH ROW
|
|
BEGIN
|
|
|
|
INSERT INTO Events_Hour (EventId,MonitorId,StartDateTime,DiskSpace) VALUES (NEW.Id,NEW.MonitorId,NEW.StartDateTime,0);
|
|
INSERT INTO Events_Day (EventId,MonitorId,StartDateTime,DiskSpace) VALUES (NEW.Id,NEW.MonitorId,NEW.StartDateTime,0);
|
|
INSERT INTO Events_Week (EventId,MonitorId,StartDateTime,DiskSpace) VALUES (NEW.Id,NEW.MonitorId,NEW.StartDateTime,0);
|
|
INSERT INTO Events_Month (EventId,MonitorId,StartDateTime,DiskSpace) VALUES (NEW.Id,NEW.MonitorId,NEW.StartDateTime,0);
|
|
UPDATE Monitors SET
|
|
HourEvents = COALESCE(HourEvents,0)+1,
|
|
DayEvents = COALESCE(DayEvents,0)+1,
|
|
WeekEvents = COALESCE(WeekEvents,0)+1,
|
|
MonthEvents = COALESCE(MonthEvents,0)+1,
|
|
TotalEvents = COALESCE(TotalEvents,0)+1
|
|
WHERE Id=NEW.MonitorId;
|
|
END;
|
|
//
|
|
|
|
delimiter ;
|