Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du kannst % nutzen. Und einen conditional TRIGGER wie in meinem 2. Beispiel:
Code:
test=# create table th3raze(id serial primary key, val int);
CREATE TABLE
test=*# create or replace function check_5() returns trigger as $$begin raise info 'in the trigger now'; if new.val % 5 = 0 then raise info 'hier tue ich was'; end if; return new; end; $$language plpgsql;
CREATE FUNCTION
test=*# create trigger trg_ohne_where before insert on th3raze for each row execute procedure check_5();
CREATE TRIGGER
test=*# insert into th3raze (val) values (4);
INFO: in the trigger now
INSERT 0 1
test=*# insert into th3raze (val) values (5);
INFO: in the trigger now
INFO: hier tue ich was
INSERT 0 1
test=*# drop trigger trg_ohne_where on th3raze;
DROP TRIGGER
--
--
--
test=*# create trigger trg_mit_where before insert on th3raze for each row when (new.val % 5 = 0) execute procedure check_5();
CREATE TRIGGER
test=*# insert into th3raze (val) values (4);
INSERT 0 1
test=*# insert into th3raze (val) values (5);
INFO: in the trigger now
INFO: hier tue ich was
INSERT 0 1
wie man an den Ausgaben sieht, feuert der zweite TRIGGER nur, wenn bereits der bei der Trigger-Definition definierte Check erfüllt ist.
Btw.: die Syntax ist natürlich in MySQL anders, in der Trigger-Prozedur kann dann die Prüfung entfallen wenn diese schon in der Definition erfolgt - und MySQL kann das alles natürlich nicht mit dem conditional Trigger.
Die gute Nachricht: % kann MySQL, da bin ich mir recht sicher ;-)
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
Diese Seite verwendet Cookies, um Inhalte zu personalisieren und dich nach der Registrierung angemeldet zu halten. Durch die Nutzung unserer Webseite erklärst du dich damit einverstanden.