Re: Writing my first trigger
От | Andreas Kretschmer |
---|---|
Тема | Re: Writing my first trigger |
Дата | |
Msg-id | 81b6ada5-7274-b260-2a59-19c6e450fb30@a-kretschmer.de обсуждение исходный текст |
Ответ на | Writing my first trigger (Chris Tsongas <chris.tsongas@gmail.com>) |
Ответы |
Re: Writing my first trigger
|
Список | pgsql-novice |
Am 19.05.22 um 20:18 schrieb Chris Tsongas: > Working on my first trigger to create a fullName value from firstName, > optional preferredFirstName, and lastName fields, where the full name > uses the optional preferred first name if it exists, otherwise it uses > the first name and of course the required last name. > > Would be great to get feedback on the following code before I try > running it (note I already have an employee table, just including the > CREATE TABLE statement for clarity): > > CREATE TABLE employee ( > firstName text NOT NULL, > preferredFirstName text, > lastName text NOT NULL, > fullName text, > ); > > CREATE OR REPLACE FUNCTION update_employee() RETURNS TRIGGER AS $$ > BEGIN > IF (OLD."preferredFirstName" IS NOT NULL) THEN > NEW."fullName" = OLD."preferredFirstName" || ' ' || OLD."lastName"; > ELSE > NEW."fullName" = OLD."firstName" || ' ' || OLD."lastName"; > END IF; > NEW."updatedAt" = now(); > RETURN NEW; > END; > $$ LANGUAGE plpgsql; > > CREATE TRIGGER fullName > INSTEAD OF INSERT OR UPDATE ON employee > FOR EACH ROW EXECUTE FUNCTION update_employee(); > your table doesn't contain the field "updatedA". I would suggest to calculate the fullName at select-time and not via TRIGGER. Andreas -- 2ndQuadrant, an EDB company www.2ndQuadrant.com / www.enterprisedb.com
В списке pgsql-novice по дате отправления: