Champ AUTO INCREMENT SQL

L'auto-increment génère un nombre unique lors de l'insertion d'un nouveau enregistrement dans la table.

Champ AUTO INCREMENT

Nous souhaitons généralement créer automatiquement la valeur du champ primaire lors de l'insertion d'un nouveau record.

Nous pouvons créer un champ auto-increment dans une table.

Syntaxe utilisée pour MySQL

La requête SQL suivante définit la colonne "P_Id" de la table "Persons" comme une clé primaire auto-incrementante :

CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

MySQL utilise le mot-clé AUTO_INCREMENT pour effectuer la tâche d'auto-increment.

Par défaut, la valeur de départ de AUTO_INCREMENT est 1, et chaque nouveau record augmente de 1.

Pour que la séquence AUTO_INCREMENT commence à une autre valeur, utilisez la syntaxe SQL suivante :

ALTER TABLE Persons AUTO_INCREMENT=100

Pour insérer un nouveau record dans la table "Persons", nous n'avons pas besoin de spécifier une valeur pour la colonne "P_Id" (une valeur unique sera ajoutée automatiquement) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

La requête SQL ci-dessus insérera un enregistrement nouveau dans la table "Persons". "P_Id" recevra une valeur unique. "FirstName" sera réglé sur "Bill", la colonne "LastName" sera réglée sur "Gates".

Syntaxe utilisée pour SQL Server

La requête SQL suivante définit la colonne "P_Id" de la table "Persons" comme une clé primaire auto-incrementante :

CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS SQL utilise le mot-clé IDENTITY pour effectuer la tâche d'auto-increment.

Par défaut, la valeur de départ de IDENTITY est 1, et chaque nouveau record augmente de 1.

Pour spécifier que la colonne "P_Id" commence à 20 et augmente de 10, remplacez identity par IDENTITY(20,10)

Pour insérer un nouveau record dans la table "Persons", nous n'avons pas besoin de spécifier une valeur pour la colonne "P_Id" (une valeur unique sera ajoutée automatiquement) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

La requête SQL ci-dessus insérera un enregistrement nouveau dans la table "Persons". "P_Id" recevra une valeur unique. "FirstName" sera réglé sur "Bill", la colonne "LastName" sera réglée sur "Gates".

Syntaxe utilisée pour Access

La requête SQL suivante définit la colonne "P_Id" de la table "Persons" comme une clé primaire auto-incrementante :

CREATE TABLE Persons
(
P_Id int PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS Access utilise le mot-clé AUTOINCREMENT pour effectuer la tâche d'auto-increment.

Par défaut, la valeur de départ de AUTOINCREMENT est 1, et chaque nouveau record augmente de 1.

Pour spécifier que la colonne "P_Id" commence à 20 et augmente de 10, remplacez autoincrement par AUTOINCREMENT(20,10)

Pour insérer un nouveau record dans la table "Persons", nous n'avons pas besoin de spécifier une valeur pour la colonne "P_Id" (une valeur unique sera ajoutée automatiquement) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

La requête SQL ci-dessus insérera un enregistrement nouveau dans la table "Persons". "P_Id" recevra une valeur unique. "FirstName" sera réglé sur "Bill", la colonne "LastName" sera réglée sur "Gates".

Syntaxe pour Oracle

En Oracle, le code est un peu plus complexe.

Vous devez créer un champ auto-increment via une séquence (cet objet génère une séquence de nombres).

Veuillez utiliser la syntaxe CREATE SEQUENCE suivante :

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

Le code ci-dessus crée un objet de séquence nommé seq_person, qui commence à 1 et augmente de 1. Cet objet cache 10 valeurs pour améliorer les performances. L'option CACHE spécifie combien de valeurs de séquence doivent être stockées pour améliorer la vitesse d'accès.

Pour insérer un nouveau enregistrement dans la table "Persons", nous devons utiliser la fonction nextval (la fonction prend le prochain valeur de la séquence seq_person) :

INSERT INTO Persons (P_Id,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')

La requête SQL ci-dessus insérera une nouvelle enregistrement dans la table "Persons". "P_Id" sera affecté au prochain numéro de la séquence seq_person. "FirstName" sera réglé sur "Bill", la colonne "LastName" sera réglée sur "Gates".