Utilisation de la séquence MySQL
La séquence MySQL utilise
La séquence MySQL est un ensemble d'entiers : 1, 2, 3, ..., en raison de a La table de données ne peut comporter qu'un seul champ avec une clé primaire à incrémentation automatique. Si vous souhaitez implémenter l'incrémentation automatique d'autres champs, vous pouvez utiliser des séquences MySQL pour y parvenir.
Dans ce chapitre, nous présenterons comment utiliser les séquences MySQL.
Utilisation d'AUTO_INCREMENT
La façon la plus simple d'utiliser des séquences dans MySQL est d'utiliser MySQL AUTO_INCREMENT pour définir des colonnes.
Exemple
L'insertion de table de données est créée dans l'exemple suivant. L'ID dans Insect peut être automatiquement développé sans spécifier de valeur.
mysql> CREATE TABLE insect -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> PRIMARY KEY (id), -> name VARCHAR(30) NOT NULL, # type of insect -> date DATE NOT NULL, # date collected -> origin VARCHAR(30) NOT NULL # where collected ); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO insect (id,name,date,origin) VALUES -> (NULL,'housefly','2001-09-10','kitchen'), -> (NULL,'millipede','2001-09-10','driveway'), -> (NULL,'grasshopper','2001-09-10','front yard'); Query OK, 3 rows affected (0.02 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM insect ORDER BY id; +----+-------------+------------+------------+ | id | name | date | origin | +----+-------------+------------+------------+ | 1 | housefly | 2001-09-10 | kitchen | | 2 | millipede | 2001-09-10 | driveway | | 3 | grasshopper | 2001-09-10 | front yard | +----+-------------+------------+------------+ 3 rows in set (0.00 sec)Obtenez la valeur AUTO_INCREMENT
Dans le client MySQL, vous pouvez utiliser La fonction LAST_INSERT_ID() en SQL est utilisée pour obtenir la valeur de la dernière colonne d'auto-incrémentation insérée dans la table.
Des fonctions correspondantes sont également fournies dans les scripts PHP ou PERL pour obtenir la valeur de la dernière colonne d'auto-incrémentation insérée dans la table.
Instance PERL
Utilisez l'attribut mysql_insertid pour obtenir la valeur de AUTO_INCREMENT. L'exemple est le suivant :
$dbh->do ("INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')"); my $seq = $dbh->{mysql_insertid}
Exemple PHP
PHP utilise la fonction mysql_insert_id() pour obtenir la valeur de la colonne AUTO_INCREMENT dans le instruction SQL d'insertion exécutée.
mysql_query ("INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')", $conn_id); $seq = mysql_insert_id ($conn_id)
Réinitialiser la séquence
Si vous supprimez plusieurs enregistrements dans la table de données et souhaitez effectuer la colonne AUTO_INCREMENT sur les données restantes pour réorganiser, vous pouvez le faire en supprimant la colonne incrémentée, puis en la rajoutant. Cependant, vous devez être très prudent lors de cette opération. Si de nouveaux enregistrements sont ajoutés lors de la suppression, un chaos de données peut survenir. Le fonctionnement est le suivant :
mysql> ALTER TABLE insect DROP id; mysql> ALTER TABLE insect -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST, -> ADD PRIMARY KEY (id)
Définir la valeur de départ de la séquence
Généralement la valeur de départ de la séquence est 1, mais si vous devez spécifier une valeur de départ de 100, puis nous pouvons l'implémenter via l'instruction suivante :
mysql> CREATE TABLE insect -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100, -> PRIMARY KEY (id), -> name VARCHAR(30) NOT NULL, # type of insect -> date DATE NOT NULL, # date collected -> origin VARCHAR(30) NOT NULL # where collected );Ou vous pouvez également l'implémenter via l'instruction suivante une fois la table créée avec succès :
mysql> ALTER TABLE t AUTO_INCREMENT = 100
Tutoriels vidéo associés recommandés : Tutoriel MySQL