Se você inserir um registro em uma tabela contendo uma coluna
que tiver o atributo AUTO_INCREMENT
, você
pode obter o ID gerado mais recentemente chamando a função
mysql_insert_id()
.
Você também pode recuperar o ID utilizando a função
LAST_INSERT_ID()
em uma string de consulta
que foi passada a mysql_query()
.
Você pode verificar se um índice
AUTO_INCREMENT
é usado executando o
seguinte código. Ele também verifica se a consulta era um
INSERT
com um índice
AUTO_INCREMENT
:
if (mysql_error(&mysql)[0] == 0 && mysql_num_fields(result) == 0 && mysql_insert_id(&mysql) != 0) { used_id = mysql_insert_id(&mysql); }
O ID gerado mais recentemente é mantido no servidor em uma
base por conexão. Ele não será alterado por outro cliente.
Ele não será alterado mesmo se você atualizar outra coluna
AUTO_INCREMENT
com um valor não mágico
(isto é, um valor que não é NULL
e nem
0
).
Se você quiser utilizar o ID que foi gerado por uma tabela e inserido em uma segunda tabela, você ode utilizar instruções SQL como esta:
INSERT INTO foo (auto,text) VALUES(NULL,'text'); # gera ID inserindo NULL INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),'text'); # usa ID na segunda tabela
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.