Edited trigger from my last paste.Syntax is for mysql and you can see what changed since old trigger at the bottom of paste. DELIMITER $$ DROP TRIGGER IF EXISTS restrictive_trigger; CREATE TRIGGER restrictive_trigger AFTER INSERT ON test1 FOR EACH ROW BEGIN IF NEW.input <> 1000 AND IF (NEW.input > 1000, 1,0)=0 AND IF (NEW.input < 1000, 1,0)=0 THEN INSERT INTO test3() VALUES ('NOT_ALLOWED',NOW(),USER()); END IF; IF NEW.input IN ('q','w','e','r','t','y','u','i','o','p','l','k','j','h','g','f','d','s','a','z','x','c','v','b','n','m') THEN INSERT INTO test2() VALUES ('EMPTY','EMPTY','EMPTY','EMPTY'); END IF; IF NEW.input = '0' THEN DELETE FROM test2 WHERE A LIKE 'EMPTY'; END IF; IF NEW.input = '0' THEN INSERT INTO test3() VALUES ('LETTER_INSERTED',NOW(), USER()); END IF; IF NEW.input > 1000 THEN INSERT INTO test2() VALUES ('MORE_THAN_THOUSAND',new.input,'OKAY',NOW()); END IF; IF NEW.input = 1000 THEN INSERT INTO test2() VALUES ('ONE_THOUSAND',NEW.input,'OKAY',NOW()); END IF; IF NEW.input < 1000 AND IF (NEW.input <> 0, 1,0)=1 THEN INSERT INTO test2() VALUES ('LESS_THAN_THOUSAND',NEW.input,'OKAY',NOW()); END IF; IF NEW.input = '-1' THEN DELETE FROM TEST2 WHERE A LIKE 'EMPTY' OR A LIKE 'MORE_THAN_THOUSAND' OR A LIKE 'LESS_THAN_THOUSAND' OR A LIKE 'ONE_THOUSAND'; END IF; IF NEW.input = '1' THEN DELETE FROM test2 WHERE B LIKE '1'; END IF; IF NEW.input LIKE '1' THEN DELETE FROM test3 WHERE ERROR_TYPE LIKE 'LETTER_INSERTED'; END IF; UPDATE test2 SET STATUS = 'OKAY*' WHERE A LIKE '1000000'; UPDATE test3 SET USER = 'ODBC@localhost(YES)' WHERE USER LIKE 'ODBC@localhost'; UPDATE test3 SET USER = 'Unknown' WHERE USER LIKE '_______________%'; END; $$ If you insert into test1 value "-1" you clean table test2 and if you insert value "1" you clean test 3 table.