Witam,
Mam tabele w bazie TABLE_A(nazwisko, od, do)
Przy dodawaniu do bazy dodaje sie tylko nazwisko i od.
Do wypełnia trigger.
Trigger nic nie robi jesli do bazy wstawiam nowe nazwisko. A jesli wstawiam takie ktore istniej w bazie, to trigger wstawia rekord i aktualizuje pole do przy rekordzie ktory juz byl w bazie.
Moze pokaze jka to w SQL mam:
[code=“sql”]CREATE OR REPLACE FUNCTION fupdatepcto() RETURNS TRIGGER AS
$$
BEGIN
UPDATE pc SET owner_to = now() where sn = NEW.sn AND owner_to is null;
RETURN NEW;
END;
$$
LANGUAGE ‘plpgsql’ VOLATILE;
ALTER FUNCTION fupdatepcto() OWNER TO postgres;
CREATE TRIGGER fruitlimit BEFORE INSERT ON pc FOR EACH ROW EXECUTE PROCEDURE fupdatepcto();[/code]
tabela i pola nazywaja sie inaczej ale o to samo chodzi.
nazwisko_od_do
kowalski | 1 | |
Po insercie insert into tabela values(kowalski, 2) bedzie
nazwisko_od_do
kowalski | 1 | 2 | <- uzupelnione 2
kowalski | 2 | | <- nowy rekord
Po insercie insert into tabela values(nowacki, 5) bedzie
nazwisko_od_do
kowalski | 1 | 2 |
kowalski | 2 | |
nowacki |5 | | <- nowy rekord
Czy zachowac tego triggera w bazie czy przeniesc go do modelu?
Chce w pewnych przypadkach gdy jest aktualiowane okreslone pole to aby nie bylo update tylko insert i update.
A z kolei jak jest aktualizowane inne pol to bylo tylko update. Ciezko troche to przeniesc do triggera.
Pozdrawiam