SQL AUTO INCREMENTChamps
L'auto-incrémentation génère un numéro unique lorsqu'un nouvel enregistrement est inséré dans une table.
Champ AUTO INCREMENT
Nous voulons généralement créer automatiquement la valeur du champ de clé primaire chaque fois qu'un nouvel enregistrement est inséré.
Nous pouvons créer un champ auto-incrémenté dans une table.
Syntaxe pour MySQL
L'instruction SQL suivante définit la colonne "ID" de la table "Persons" comme un champ de clé primaire auto-incrémenté :
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)
MySQL utilise le mot-clé AUTO_INCREMENT pour effectuer la tâche d'auto-incrémentation.
Par défaut, la valeur de départ de AUTO_INCREMENT est 1, et elle s'incrémente de 1 pour chaque nouvel enregistrement.
Pour que la séquence AUTO_INCREMENT commence avec une valeur différente, utilisez la syntaxe SQL suivante :
Pour insérer un nouvel enregistrement dans la table "Persons", nous n'avons pas à spécifier de valeur pour la colonne "ID" (une valeur unique sera ajoutée automatiquement) :
VALUES ('Lars','Monsen')
L'instruction SQL ci-dessus insère un nouvel enregistrement dans la table "Persons". La colonne "ID" se verra attribuer une valeur unique. La colonne "FirstName" sera définie sur "Lars", et la colonne "LastName" sera définie sur "Monsen".
Syntaxe pour SQL Server
L'instruction SQL suivante définit la colonne "ID" de la table "Persons" comme un champ de clé primaire auto-incrémenté :
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MS SQL Server utilise le mot-clé IDENTITY pour effectuer la tâche d'auto-incrémentation.
Dans l'exemple ci-dessus, la valeur de départ pour IDENTITY est 1, et elle s'incrémente de 1 pour chaque nouvel enregistrement.
Astuce :Pour spécifier que la colonne "ID" commence à 10 et s'incrémente de 5, remplacez identity par IDENTITY(10,5).
Pour insérer un nouvel enregistrement dans la table "Persons", nous n'avons pas à spécifier de valeur pour la colonne "ID" (une valeur unique sera ajoutée automatiquement) :
VALUES ('Lars','Monsen')
L'instruction SQL ci-dessus insère un nouvel enregistrement dans la table "Persons". La colonne "ID" se verra attribuer une valeur unique. La colonne "FirstName" sera définie sur "Lars", et la colonne "LastName" sera définie sur "Monsen".
Syntaxe pour Access
L'instruction SQL suivante définit la colonne "ID" de la table "Persons" comme un champ de clé primaire auto-incrémenté :
(
ID Integer 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-incrémentation.
Par défaut, la valeur de départ pour AUTOINCREMENT est 1, et elle s'incrémente de 1 pour chaque nouvel enregistrement.
Astuce :Pour spécifier que la colonne "ID" commence à 10 et s'incrémente de 5, remplacez autoincrement par AUTOINCREMENT(10,5).
Pour insérer un nouvel enregistrement dans la table "Persons", nous n'avons pas à spécifier de valeur pour la colonne "ID" (une valeur unique sera ajoutée automatiquement) :
VALUES ('Lars','Monsen')
L'instruction SQL ci-dessus insère un nouvel enregistrement dans la table "Persons". La colonne "ID" se verra attribuer une valeur unique. La colonne "FirstName" sera définie sur "Lars", et la colonne "LastName" sera définie sur "Monsen".
Syntaxe pour Oracle
Dans Oracle, le code est légèrement plus complexe.
Vous devez créer le champ auto-incrémenté à l'aide d'un objet de séquence (qui génère une séquence de nombres).
Utilisez la syntaxe CREATE SEQUENCE suivante :
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 s'incrémente de 1. Cet objet met en cache 10 valeurs pour améliorer les performances. L'option cache spécifie combien de valeurs de séquence sont stockées pour améliorer la vitesse d'accès.
Pour insérer un nouvel enregistrement dans la table "Persons", nous devons utiliser la fonction nextval (qui récupère la valeur suivante de la séquence seq_person) :
VALUES (seq_person.nextval,'Lars','Monsen')
L'instruction SQL ci-dessus insère un nouvel enregistrement dans la table "Persons". La colonne "ID" recevra le numéro suivant de la séquence seq_person. La colonne "FirstName" sera définie sur "Lars", et la colonne "LastName" sera définie sur "Monsen".
Autres extensions