102 lines
3.4 KiB
MySQL
102 lines
3.4 KiB
MySQL
|
/* 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 RENAME COLUMN StartTime TO StartDateTime"
|
||
|
));
|
||
|
|
||
|
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 RENAME COLUMN EndTime TO EndDateTime"
|
||
|
));
|
||
|
|
||
|
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 RENAME COLUMN StartTime TO StartDateTime"
|
||
|
));
|
||
|
|
||
|
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 RENAME COLUMN StartTime TO StartDateTime"
|
||
|
));
|
||
|
|
||
|
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 RENAME COLUMN StartTime TO StartDateTime"
|
||
|
));
|
||
|
|
||
|
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 RENAME COLUMN StartTime TO StartDateTime"
|
||
|
));
|
||
|
|
||
|
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 ;
|