8.8Functions for Sequences (Generators)

8.8.1GEN_ID()

Available inDSQL, ESQL, PSQL

Result typeBIGINT — dialect 2 and 3 INTEGER — dialect 1

Syntax

  |GEN_ID (generator-name, step)

Table 8.70GEN_ID Function Parameters
ParameterDescription

generator-name

Name of a generator (sequence) that exists. If it has been defined in double quotes with a case-sensitive identifier, it must be used in the same form unless the name is all upper-case.

step

An integer expression

Increments a generator or sequence and returns its new value. If step equals 0, the function will leave the value of the generator unchanged and return its current value.

  • From Firebird 2.0 onward, the SQL-compliant NEXT VALUE FOR syntax is preferred, except when an increment other than 1 is needed.

🛑
Warning

If the value of the step parameter is less than zero, it will decrease the value of the generator. Attention! You should be extremely cautious with such manipulations in the database, as they could compromise data integrity.

Note

In dialect 1, the result type is INTEGER, in dialect 2 and 3 it is BIGINT.

8.8.1.1GEN_ID Example

  |new.rec_id = gen_id(gen_recnum, 1);

See alsoNEXT VALUE FOR, CREATE SEQUENCE (GENERATOR)