English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Une séquence MySQL est un ensemble d'entiers :1, 2, 3, ... , car une table ne peut avoir qu'un champ auto-incrementé en tant que clé principale, Si vous souhaitez réaliser une augmentation automatique pour d'autres champs, vous pouvez utiliser les séquences MySQL pour cela.
Dans ce chapitre, nous allons vous expliquer comment utiliser les séquences de MySQL.
La méthode la plus simple d'utilisation des séquences dans MySQL consiste à utiliser MySQL AUTO_INCREMENT pour définir la séquence.
Dans l'exemple suivant, la table insect a été créée, id dans la table insect ne nécessite pas de valeur pour réaliser la croissance automatique.
mysql> CREATE TABLE insect -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> PRIMARY KEY (id), -> name VARCHAR(30) NOT NULL, # type d'insecte -> date DATE NOT NULL, # date collectée -> origin VARCHAR(30) NOT NULL # où collecté ); Requête OK, 0 lignes affectées (0.02 sec) mysql> INSERT INTO insect (id,name,date,origin) VALUES -> (NULL,'mouche domestique','2001-09-10','cuisine'), -> (NULL,'millipede','2001-09-10','allée de voiture'), -> (NULL, 'poulie d'eau',}}2001-09-10','avant jardin'); Query OK, 3 rows affectés (0.02 sec) Enregistrements: 3 Duplicatas: 0 Avertissements: 0 mysql> SELECT * FROM insect ORDER BY id; +----+-------------+------------+------------+ | id | name | date | origine | +----+-------------+------------+------------+ | 1 | mouche | 2001-09-10 | cuisine | | 2 | mille-pattes | 2001-09-10 | allée | | 3 | poulie d'eau | 2001-09-10 | avant jardin | +----+-------------+------------+------------+ 3 rows in set (0.00 sec)
Dans le client MySQL, vous pouvez utiliser La fonction LAST_INSERT_ID() dans SQL permet d'obtenir la valeur de la colonne auto-increment de la dernière table insérée.
Des fonctions correspondantes sont également fournies dans les scripts PHP ou PERL pour obtenir la valeur de la colonne auto-increment de la dernière table insérée.
Utiliser l'attribut mysql_insertid pour obtenir la valeur AUTO_INCREMENT. Voici un exemple :
$dbh->do("INSERT INTO insect (name,date,origin VALUES('mouche','2001-09-14','windowsill')"); my $seq = $dbh-{mysql_insertid};
PHP utilise la fonction mysql_insert_id () pour obtenir la valeur de la colonne AUTO_INCREMENT de la dernière requête SQL insérée.
mysql_query("INSERT INTO insect (name,date,origin) VALUES('mouche','2001-09-14','windowsill')", $conn_id); $seq = mysql_insert_id ($conn_id);
Si vous avez supprimé plusieurs enregistrements dans la table des données et que vous souhaitez réorganiser la colonne AUTO_INCREMENT restante, vous pouvez le faire en supprimant la colonne auto-increment et en l'ajoutant à nouveau. Cependant, cette opération doit être effectuée avec prudence, car si des nouvelles entrées sont ajoutées pendant la suppression, il pourrait y avoir un désordre des données. Voici la procédure :
mysql> ALTER TABLE insect DROP id; mysql> ALTER TABLE insect -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST, -> ADD PRIMARY KEY (id);
Généralement, la valeur de départ de la séquence est1Mais si vous avez besoin de spécifier une valeur de départ100, nous pouvons réaliser cela via la following instruction :
mysql> CREATE TABLE insect -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> PRIMARY KEY (id), -> name VARCHAR(3) NOT NULL, -> date DATE NOT NULL, -> origin VARCHAR(3) NOT NULL )engine=innodb auto_increment=100 charset=utf8;
Ou vous pouvez également réaliser cela après la création de la table via la following instruction :
mysql> ALTER TABLE t AUTO_INCREMENT = 100;