Leave a Comment
            Триггеры в mySQL 5.0
Ссылка на статью.
Для чего они нужны:
— чтобы проверить и предотвратить вставку некорректных данных
— чтобы изменить или отменить процедуры INSERT, UPDATE, DELETE
— чтобы отслеживать изменения данных внутри сесии.
Триггер — это фактически хранимая процедура, выполняющаяся при определённом событии, относящемся к определённым данным (хотя и с некоторыми нюансами).
Синтаксис:
| 
					 1 2 3 4 5 6  | 
						CREATE TRIGGER <trigger name> { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ON <table name> FOR EACH ROW <triggered SQL statement>  | 
					
При этом доступны специфичные пространства имён OLD и NEW в зависимости от контекста (INSERT, UPDATE, DELETE)
| 
					 1 2 3 4 5 6 7  | 
						CREATE TRIGGER t21_au BEFORE UPDATE ON t22 FOR EACH ROW BEGIN SET @old = OLD . s1; SET @new = NEW.s1; END;//  | 
					
Пример использования для предотвращения вставки некорректных данных
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | 
						CREATE TABLE t25 (s1 INT, s2 CHAR(5), PRIMARY KEY (s1)) ENGINE=INNODB// CREATE TRIGGER t25_bi BEFORE INSERT ON t25 FOR EACH ROW IF LEFT(NEW.s2,1)<>'A' THEN SET NEW.s1=0; END IF;// CREATE TRIGGER t25_bu BEFORE UPDATE ON t25 FOR EACH ROW IF LEFT(NEW.s2,1)<>'A' THEN SET NEW.s1=0; END IF;// INSERT INTO t25 VALUES (0,'a') /* priming the pump */ // INSERT INTO t25 VALUES (5,'b') /* gets error '23000' */ //  | 
					
Similar Posts
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.