1.92.  sequencesetvalue( integer, integer, bigint, bigint )

Propriétés de la fonction
Langage: PLPGSQL
Type du code retour: integer

Initialise la nouvelle valeur last_value pourla séquence seq_id.

declare
        p_seq_id                        alias for $1;
        p_seq_origin            alias for $2;
        p_ev_seqno                      alias for $3;
        p_last_value            alias for $4;
        v_fqname                        text;
begin
        -- ----
        -- Get the sequences fully qualified name
        -- ----
        select slon_quote_brute(PGN.nspname) || '.' ||
                        slon_quote_brute(PGC.relname) into v_fqname
                from sl_sequence SQ,
                        "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN
                where SQ.seq_id = p_seq_id
                        and SQ.seq_reloid = PGC.oid
                        and PGC.relnamespace = PGN.oid;
        if not found then
                raise exception 'Slony-I: sequenceSetValue(): sequence % not found', p_seq_id;
        end if;

        -- ----
        -- Update it to the new value
        -- ----
        execute 'select setval(''' || v_fqname ||
                        ''', ''' || p_last_value || ''')';

        insert into sl_seqlog
                        (seql_seqid, seql_origin, seql_ev_seqno, seql_last_value)
                        values (p_seq_id, p_seq_origin, p_ev_seqno, p_last_value);

        return p_seq_id;
end;