Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE FUNCTION demographic( demographic_type varchar, demographic_code varchar, demographic_description varchar)
- RETURNS TABLE (demographic_type_id uuid, demographic_value_id uuid ) AS $$
- DECLARE
- demographic_type_id uuid;
- demographic_value_id uuid;
- BEGIN
- SELECT id INTO demographic_type_id FROM demographic WHERE lower(name) = lower(demographic_type);
- IF NOT FOUND THEN
- BEGIN
- INSERT INTO demographic (id, name) VALUES (uuid_generate_v4(), demographic_type) RETURNING id INTO demographic_type_id;
- EXCEPTION WHEN unique_violation THEN
- SELECT id INTO demographic_type_id FROM demographic WHERE lower(name) = lower(demographic_type);
- END;
- END IF;
- SELECT id INTO demographic_value_id FROM demographic_value WHERE demographic_id = demographic_type_id AND code = demographic_code;
- IF NOT FOUND THEN
- BEGIN
- INSERT INTO demographic_value (id, demographic_id, code, description) VALUES (uuid_generate_v4(), demographic_type_id, demographic_code, demographic_description) RETURNING id INTO demographic_value_id;
- EXCEPTION WHEN unique_violation THEN
- SELECT id INTO demographic_value_id FROM demographic_value WHERE demographic_id = demographic_type_id AND code = demographic_code;
- END;
- END IF;
- RETURN QUERY SELECT demographic_type_id, demographic_value_id;
- END;
- $$ LANGUAGE plpgsql;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement