Latest web development tutorials

MySQL sequenza uso

MySQL è una sequenza di numeri interi: 1, 2, 3, ..., come una tabella di dati può avere un solo campo di chiavi primarie di incremento, se si desidera implementare altri campi sono aumentati automaticamente, è possibile utilizzare le sequenze di MySQL da raggiungere.

In questo capitolo descriveremo come utilizzare le sequenze di MySQL.


Usa AUTO_INCREMENT

MySQL metodo più semplice è quello di utilizzare una sequenza per definire l'uso di colonne MySQL AUTO_INCREMENT.

Esempi

L'esempio seguente crea una tabella di dati insetto, insetto senza specificare il valore di id può aumentare automaticamente.

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)

Ottenere il valore AUTO_INCREMENT

Nel client di MySQL è possibile utilizzare la funzione SQL LAST_INSERT_ID () per recuperare l'ultimo valore inserito nel incremento automatico della tabella.

In PHP o Perl fornisce anche una funzione corrispondente per ottenere il valore per l'ultimo inserito tavolo incremento automatico dei.

esempi PERL

Utilizzare proprietà mysql_insertid per ottenere il valore di AUTO_INCREMENT. Esempi sono i seguenti:

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

Esempi PHP

PHP per ottenere il valore nella colonna AUTO_INCREMENT istruzione SQL eseguita dalla funzione 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);

ripristino sequenza

Se si eliminano i dati nella tabella più record, e spero che le restanti colonne di dati AUTO_INCREMENT per riorganizzare, quindi è possibile eliminare le colonne di crescere, quindi aggiungere nuovamente di raggiungere. Tuttavia, l'operazione di stare molto attenti se si dispone di un nuovo record si aggiunge allo stesso tempo rimosso, ci può essere il caos dei dati. Il funzionamento è il seguente:

mysql> ALTER TABLE insect DROP id;
mysql> ALTER TABLE insect
    -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
    -> ADD PRIMARY KEY (id);

Impostare il valore iniziale della sequenza

In circostanze normali il valore sequenza di avvio di 1, ma se è necessario specificare un valore iniziale di 100, allora possiamo ottenere la seguente dichiarazione:

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
);

In alternativa, è possibile creare una tabella per il successo ottenuto dalla seguente dichiarazione:

mysql> ALTER TABLE t AUTO_INCREMENT = 100;