Aller au contenu

Récupère la valeur suivante d’une séquence.

NEXTVAL(<sequence_name>)

Entier.

Cet exemple montre le fonctionnement de la fonction NEXTVAL avec une séquence :

CREATE SEQUENCE my_seq;
SELECT
NEXTVAL(my_seq),
NEXTVAL(my_seq),
NEXTVAL(my_seq);
┌─────────────────────────────────────────────────────┐
│ nextval(my_seq) │ nextval(my_seq) │ nextval(my_seq) │
├─────────────────┼─────────────────┼─────────────────┤
│ 1 │ 2 │ 3 │
└─────────────────────────────────────────────────────┘

Cet exemple montre comment des séquences et la fonction NEXTVAL servent à générer et à attribuer automatiquement des identifiants uniques aux lignes d’une table.

-- Create a new sequence named staff_id_seq
CREATE SEQUENCE staff_id_seq;
-- Create a new table named staff with columns for staff_id, name, and department
CREATE TABLE staff (
staff_id INT,
name VARCHAR(50),
department VARCHAR(50)
);
-- Insert a new row into the staff table, using the next value from the staff_id_seq sequence for the staff_id column
INSERT INTO staff (staff_id, name, department)
VALUES (NEXTVAL(staff_id_seq), 'John Doe', 'HR');
-- Insert another row into the staff table, using the next value from the staff_id_seq sequence for the staff_id column
INSERT INTO staff (staff_id, name, department)
VALUES (NEXTVAL(staff_id_seq), 'Jane Smith', 'Finance');
SELECT * FROM staff;
┌───────────────────────────────────────────────────────┐
│ staff_id │ name │ department │
├─────────────────┼──────────────────┼──────────────────┤
│ 2 │ Jane Smith │ Finance │
│ 1 │ John Doe │ HR │
└───────────────────────────────────────────────────────┘