I had an inconsistent error with "before insert trigger" in MySQL and cannot figure out the reason.
I have a table with the following description:
+-----------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------------+------+-----+---------+-------+ | ROW_ID | int(11) | NO | PRI | 0 | | | ID | int(11) | NO | UNI | NULL | | | TITLE | varchar(32) | NO | | NULL | | | TEXT | varchar(500) | NO | | NULL | | | URL | varchar(200) | YES | | NULL | | | MINUTE_IN | int(11) | YES | | NULL | | | SECOND_IN | int(11) | YES | | NULL | | | TVSHOW_ID | int(11) | NO | MUL | NULL | | | IMAGE | varchar(4000) | YES | | NULL | | +-----------+---------------+------+-----+---------+-------+
And I have a trigger with the following statement:
delimiter $$ CREATE TRIGGER ACTIVATE_IRT_CONTENT BEFORE INSERT ON WEXTRAS_CONTENT FOR EACH ROW BEGIN IF (SELECT s.ACTIVE from WEXTRAS_TVSHOW s where s.id = NEW.tvshow_id) = 1 AND NEW.MINUTE_IN = 0 AND NEW.SECOND_IN = 0 THEN SET NEW.MINUTE_IN = TIMESTAMPDIFF(MINUTE,(select INIT_TIME from WEXTRAS_TVSHOW s where s.id = NEW.tvshow_id ),sysdate()); SET NEW.SECOND_IN = SECOND(SEC_TO_TIME(TIMESTAMPDIFF(SECOND,(select INIT_TIME from WEXTRAS_TVSHOW s where s.id = NEW.tvshow_id ),sysdate()))); END IF; END$$ delimiter ;
The problem is that the following error is sometimes returned:
Unknown column "MINUTE_IN" in "NEW"
If this error occurs, it will not stop until I close and re-create the trigger using the same instruction. When I do this, the error stops, and some inserts will occur without problems until the same problem returns, apparently for no reason.
Can someone help me on this? Thanks in advance.
sql mysql triggers mysql-error-1054
barras
source share