O atributo AUTO_INCREMENT pode ser usado para
        gerar uma identificação única para um novo registro:
      
CREATE TABLE animals (
             id MEDIUMINT NOT NULL AUTO_INCREMENT,
             name CHAR(30) NOT NULL,
             PRIMARY KEY (id)
             );
INSERT INTO animals (name) VALUES ("dog"),("cat"),("penguin"),
                                  ("lax"),("whale"),("ostrich");
SELECT * FROM animals;
Que retorna:
+----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | lax | | 5 | whale | | 6 | ostrich | +----+---------+
        Você pode recuperar o valor AUTO_INCREMENT
        mais recente com a função SQL
        LAST_INSERT_ID() ou a função da API C
        mysql_insert_id(). Nota: para uma inserção
        de várias linhas
        LAST_INSERT_ID()/mysql_insert_id()
        retornará atualmente a AUTO_INCREMENT chave
        da primeira linha inserida.
        Isto permite que inserções multi-linhas sejam reproduzidas
        corretamente em outros servidores em uma configração de
        replicação.
      
        Para tabelas MyISAM e BDB
        você pode especificar AUTO_INCREMENT em uma
        coluna secundária em um índice multi-coluna. Neste caso, o
        valor gerado para a coluna AUTO_INCREMENT é
        calculado como MAX(auto_increment_column)+1) WHERE
        prefix=given-prefix. Isto é útil quando você quer
        colocar dados em grupos ordenados.
      
CREATE TABLE animals (
             grp ENUM('fish','mammal','bird') NOT NULL,
             id MEDIUMINT NOT NULL AUTO_INCREMENT,
             name CHAR(30) NOT NULL,
             PRIMARY KEY (grp,id)
             );
INSERT INTO animals (grp,name) VALUES("mammal","dog"),("mammal","cat"),
                  ("bird","penguin"),("fish","lax"),("mammal","whale"),
                        ("bird","ostrich");
SELECT * FROM animals ORDER BY grp,id;
Que retorna:
+--------+----+---------+ | grp | id | name | +--------+----+---------+ | fish | 1 | lax | | mammal | 1 | dog | | mammal | 2 | cat | | mammal | 3 | whale | | bird | 1 | penguin | | bird | 2 | ostrich | +--------+----+---------+
        Note que neste caso (quando o valor
        AUTO_INCREMENT é parte de um índice
        multi-coluna), o valor de AUTO_INCREMENT
        será reutilizado se você deletar a linha com o maior valor
        AUTO_INCREMENT em qualquer grupo. Isto
        caontece mesmo para tabelas MyISAM, para as
        quais os valores AUTO_INCREMENT normalmente
        não são reusados.)
      
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

