I need some help identifying what I did wrong.
I created two tables to track history from my main table. When I update a state from 0 to 1, the first trigger copies the data into history table 1.
But when I change the state from 1 to 2, the second trigger is not triggering, thus not copying the data into history table 2.
CREATE TABLE stateOneHistoryTable (
historyDate DATETIME DEFAULT NULL,
eventID int(11) NOT NULL,
eventTIME decimal(15,0) NOT NULL,
newestEventTime decimal(20,0) DEFAULT NULL,
deviceIP varchar(20) NOT NULL,
syslogMessage varchar(1000) NOT NULL,
syslogState decimal(2,0) NOT NULL,
eventCount decimal(5,0) NOT NULL
)
CREATE TABLE stateTwoHistoryTable (
historyDate DATETIME DEFAULT NULL,
eventID int(11) NOT NULL,
eventTIME decimal(15,0) NOT NULL,
newestEventTime decimal(20,0) DEFAULT NULL,
deviceIP varchar(20) NOT NULL,
syslogMessage varchar(1000) NOT NULL,
syslogState decimal(2,0) NOT NULL,
eventCount decimal(5,0) NOT NULL
)
Below are the triggers I created.
DELIMITER //
CREATE TRIGGER stateOneHistoryTableTrigger
AFTER UPDATE
ON syslog
FOR EACH ROW
BEGIN
IF (old.syslogState=0 & new.syslogState=1)
THEN
INSERT INTO stateOneHistoryTable (historyDate, eventID, eventTIME, newestEventTime, deviceIP, syslogMessage, syslogState, eventCount)
VALUES (utc_timestamp(), new.eventID, new.eventTIME, new.newestEventTime, new.deviceIP, new.syslogMessage, new.syslogState, new.eventCount);
END IF;
END; //
DELIMITER ;
DELIMITER //
CREATE TRIGGER stateTwoHistoryTableTrigger
AFTER UPDATE
ON syslog
FOR EACH ROW
BEGIN
IF (old.syslogState=1 & new.syslogState=2)
THEN
INSERT INTO stateTwoHistoryTable (historyDate, eventID, eventTIME, newestEventTime, deviceIP, syslogMessage, syslogState, eventCount)
VALUES (utc_timestamp(), new.eventID, new.eventTIME, new.newestEventTime, new.deviceIP, new.syslogMessage, new.syslogState, new.eventCount);
END IF;
END; //
DELIMITER ;