Latest web development tutorials

sequência uso MySQL

MySQL é uma sequência de números inteiros: 1, 2, 3, ..., como uma tabela de dados pode ter apenas um campo de incremento chaves primárias, se você quiser implementar campos adicionais são automaticamente aumentado, você pode usar sequências de MySQL para conseguir.

Neste capítulo iremos descrever como usar sequências MySQL.


Use AUTO_INCREMENT

MySQL método mais simples é a utilização de uma sequência para definir a utilização da coluna MySQL AUTO_INCREMENT.

Exemplos

O exemplo a seguir cria um inseto tabela de dados, inseto, sem especificar o valor do id pode aumentar 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)

Obter valor AUTO_INCREMENT

Em cliente MySQL você pode usar a função SQL LAST_INSERT_ID () para recuperar o último valor inserido na auto incremento da tabela.

No PHP ou script Perl também fornece uma função correspondente para obter o valor para o último inserido tabela de auto-incremento de.

exemplos PERL

Use a propriedade mysql_insertid para obter o valor de AUTO_INCREMENT. Exemplos são os seguintes:

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

Exemplos PHP

PHP para obter o valor para a coluna AUTO_INCREMENT instrução SQL executada pela função 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);

seqüência de reset

Se você excluir os dados na tabela vários registros, e espero que os restantes colunas AUTO_INCREMENT dados para reorganizar, em seguida, você pode excluir colunas de crescer, em seguida, adicioná-lo novamente para conseguir. No entanto, a operação que ter muito cuidado se você tiver um novo registro é adicionado ao mesmo tempo removidos, pode haver caos de dados. A operação é como se segue:

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

Defina o valor início da sequência

Em circunstâncias normais valor sequência inicial de 1, mas se você precisa especificar um valor inicial de 100, então podemos alcançar a seguinte declaração:

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 você pode criar uma tabela no sucesso alcançado pela seguinte declaração:

mysql> ALTER TABLE t AUTO_INCREMENT = 100;