I am trying to create a function that gets fired when a new row is
inserted. I can get the following function built but my problem is
that the sequence that is created is called "NEW.key" rather than the
value that is being inserted (it should be a UUID).

I have tried putting the key into a variable and using no quotes but
it either errors or gives me "NEW.key" rather than "whatever-uuid-was
inserted".

Please can anybody give me some pointers?

Thanks
Jake

CREATE OR REPLACE FUNCTION public.setup_sequence()
                                RETURNS trigger
                                LANGUAGE plpgsql
                                AS $$
                                        DECLARE
                                                sequence_name UUID;
                                        BEGIN
                                                IF (
                                                        TG_OP = 'INSERT' AND
                                                        NEW.type = 
'auto_increment'
                                                ) THEN
                                                        SELECT NEW.key INTO 
STRICT sequence_name;
                                                        -- Set up the sequence
                                                        CREATE SEQUENCE 
\"NEW.key\";
                                                        -- Set the start value
                                                        --SELECT 
SETVAL(sequence_name, NEW.auto_increment_default);
                                                END IF;
                                                RETURN NEW;
                                        END;

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to