blob: 1ca1bb1696cf852ee596f79b4f5f040d54d964a3 (
plain)
- begin;
- CREATE OR REPLACE FUNCTION person_save
- (in_id integer, in_salutation int,
- in_first_name text, in_last_name text
- )
- RETURNS INT AS $$
- DECLARE
- e_id int;
- e entity;
- loc location;
- l_id int;
- per person;
- p_id int;
- BEGIN
-
- select * into e from entity where id = in_id and entity_class = 3;
-
- IF NOT FOUND THEN
- RAISE EXCEPTION 'No entity found for ID %', in_id;
- END IF;
-
- select * into per FROM person WHERE entity_id = in_id;
-
- IF FOUND THEN
-
- -- do an update
-
- UPDATE person SET
- salutation = in_salutation,
- first_name = in_first_name,
- last_name = in_last_name
- WHERE
- entity_id = in_id
- AND
- id = per.id;
-
- ELSE
-
- -- Do an insert
-
- INSERT INTO person (salutation, first_name, last_name) VALUES
- (in_salutation, in_first_name, in_last_name);
-
-
- END IF;
- $$ language plpgsql;
- commit;
|