Trigger in MySQL
DELIMITER ;;
DROP TRIGGER IF EXISTS check1;;
CREATE TRIGGER check1
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
DECLARE text VARCHAR( 255 );
IF NOT NEW.NOTE IN( 1, 2, 3, 4, 5, 6 )THEN
SET text = 'Keine Schulnote!';
SIGNAL SQLSTATE '45000' SET message_text = text;
END IF;
END;;CREATE TRIGGER backupName
BEFORE DELETE ON Kurs
FOR EACH ROW
BEGIN
INSERT INTO Archiv( Name )VALUES( old.Name );
END;;CREATE TRIGGER <trigger name>
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <table name>
FOR EACH ROW
<triggered SQL statement><trigger name> bis 64 Zeichen, auch in Gravis (wie andere Namen)
INSERT: new.
DELETE: old.
UPDATE: new., old.
CREATE TABLE example( f1 INT, f2 CHAR(5), PRIMARY KEY (f1), CHECK( LEFT( s2, 1 )= 'A' ));;
CREATE TABLE example( f1 INT, f2 CHAR(5), PRIMARY KEY (f1));;
CREATE TRIGGER example_bi BEFORE INSERT ON example FOR EACH ROW IF LEFT(NEW.f2,1)<>'K' THEN …; END IF;;
CREATE TRIGGER example_bu BEFORE UPDATE ON example FOR EACH ROW IF LEFT(NEW.f2,1)<>'K' THEN …; END IF;;