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 einem Login angemeldet zu halten, wenn du registriert bist.
Durch die weitere Nutzung unserer Webseite erklärst du dich damit einverstanden.