Latest web development tutorials

séquence d'utilisation MySQL

MySQL est une suite d'entiers: 1, 2, 3, ..., comme une table de données peut avoir des clés primaires incrémentation un seul sur le terrain, si vous souhaitez implémenter des champs supplémentaires sont automatiquement augmentés, vous pouvez utiliser des séquences MySQL à atteindre.

Dans ce chapitre, nous allons décrire comment utiliser des séquences MySQL.


Utiliser AUTO_INCREMENT

MySQL méthode la plus simple est d'utiliser une séquence pour définir l'utilisation de la colonne MySQL AUTO_INCREMENT.

Exemples

L'exemple suivant crée un insecte de la table de données, les insectes, sans préciser la valeur de id peut augmenter automatiquement.

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)

Obtenir la valeur AUTO_INCREMENT

En client MySQL, vous pouvez utiliser la fonction SQL LAST_INSERT_ID () pour récupérer la dernière valeur insérée dans l'auto-incrémentation de la table.

En PHP ou un script PERL fournit également une fonction correspondante pour obtenir la valeur pour le dernier inséré tableau auto-incrément de.

exemples PERL

Utilisez la propriété mysql_insertid pour obtenir la valeur de AUTO_INCREMENT. Des exemples sont les suivants:

$dbh->do ("INSERT INTO insect (name,date,origin)
VALUES('moth','2001-09-14','windowsill')");
my $seq = $dbh->{mysql_insertid};

Des exemples de PHP

PHP pour obtenir la valeur dans la colonne AUTO_INCREMENT instruction SQL exécutée par la fonction mysql_insert_id ().

mysql_query ("INSERT INTO insect (name,date,origin)
VALUES('moth','2001-09-14','windowsill')", $conn_id);
$seq = mysql_insert_id ($conn_id);

Réinitialiser séquence

Si vous supprimez les données dans la table des enregistrements multiples, et nous espérons que les autres colonnes AUTO_INCREMENT de données pour réorganiser, vous pouvez supprimer des colonnes de plus en plus, puis ajoutez-le à atteindre. Toutefois, l'opération d'être très prudent si vous avez un nouvel enregistrement est ajouté en même temps supprimé, il peut y avoir un chaos de données. 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);

Réglez la valeur de début de la séquence

Dans des circonstances normales valeur de la séquence de démarrage de 1, mais si vous avez besoin de spécifier une valeur de départ de 100, alors nous pouvons obtenir la déclaration 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 créer une table dans le succès obtenu par la déclaration suivante:

mysql> ALTER TABLE t AUTO_INCREMENT = 100;