
Zitat von
Borinator
Hallo zusammen,
Ich wollte ein Trigger machen das Tabellenfelder die Null beinhalten durch ein numerisch 0 ersetzt.
Den Code habe ich dafür, ich hoffe der ist auch richtig.
Mein Problem liegt darin das, wenn ich die Funktion erstellen will der mir sagt "Trigger existiert nicht". Und wenn ich den Trigger erstellen will sagt der mir "Funktion existiert nicht"
Code:
Create FUNCTION "TBLFAHRTEN_BIO"()
Returns "Trigger" as
$BODY$
BEGIN
if (New.NR is NULL) then
New.NR = 0;
end if;
end;
$BODY$
Language 'plpgsql' VOLATILE; Code:
CREATE TRIGGER "TBLFAHRTEN_BIO"
BEFORE INSERT
ON TBLFAHRTEN
FOR EACH ROW
EXECUTE PROCEDURE TBLFAHRTEN_BIO();
Die Fehlermeldung, dürfen wir die erraten?
Code:
test=*# create table bla(i int);
CREATE TABLE
test=*# create or replace function f_bla() returns trigger as $$begin if new.i is null then new.i = 0; return new; end if; end;$$ language plpgsql;
CREATE FUNCTION
test=*# create trigger trg_bla before insert or update on bla for each row execute procedure f_bla();
CREATE TRIGGER
test=*# insert into bla values (NULL);
INSERT 0 1
test=*# select * from bla;
i
---
0
(1 row)
test=*# rollback;
works for me, but:
Code:
test=*# create table bla(i int);
CREATE TABLE
test=*# create or replace function f_bla() returns "Trigger" as $$begin if new.i is null then new.i = 0; return new; end if; end;$$ language plpgsql;
ERROR: type "Trigger" does not exist
Du siehst den Unterschied? Habe ich die Fehlermeldung richtig erraten?
Andreas
Lesezeichen