Maison > base de données > tutoriel mysql > le corps du texte

[Tutoriel MySQL] Utilisation de la séquence MySQL

黄舟
Libérer: 2016-12-26 17:28:51
original
1142 Les gens l'ont consulté

Utilisation d'une séquence MySQL

La séquence MySQL est un ensemble d'entiers : 1, 2, 3, ..., puisqu'une table de données ne peut avoir qu'un seul champ avec une clé primaire auto-incrémentée, si vous le souhaitez pour implémenter également d'autres champs. Pour obtenir une augmentation automatique, vous pouvez utiliser des séquences MySQL pour y parvenir.

Dans ce chapitre, nous présenterons comment utiliser les séquences MySQL.

Utiliser 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

Dans l'exemple suivant, la table de données insectes est créée. L'ID dans insectes peut croître automatiquement 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)
Copier après la connexion

Obtenir la valeur AUTO_INCREMENT

Dans le client MySQL, vous pouvez utiliser la fonction LAST_INSERT_ID() en SQL 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};
Copier après la connexion

Exemple PHP

PHP utilise la fonction mysql_insert_id() pour obtenir la valeur de la colonne AUTO_INCREMENT dans l'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);
Copier après la connexion

Réinitialiser la séquence

Si vous supprimez plusieurs enregistrements dans la table de données et souhaitez réorganiser la colonne AUTO_INCREMENT des données restantes, vous pouvez supprimer la colonne d'incrémentation automatique, puis réorganiser -ajouter pour y parvenir. 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);
Copier après la connexion

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 , nous pouvons alors transmettre l'instruction suivante pour réaliser :

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
);
Copier après la connexion

Ou vous pouvez également implémenter l'instruction suivante une fois la table créée avec succès :

mysql> ALTER TABLE t AUTO_INCREMENT = 100;
Copier après la connexion


Ce qui précède est le contenu de [tutoriel mysql] Utilisation de la séquence MySQL Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal