Pubblicità

MySql come ottenere o recuperare l’ultimo ID del record inserito

L’argomento di cui parliamo fa riferimento ad una tabella di un database MySql, dove è stata definita una chiave primaria ID autoincrementale.
Vediamo come ottenere o recuperare per un data base MySql l’ultimo ID del record, riga, inserito in una tabella.

La gestione dei dati nel database MySQL e le query che utilizziamo sono molto simili agli altri database. Dopotutto il linguaggio che si esprime nelle query è davvero comune per tutti i database fatta eccezzione per qualche piccolo caso di sintassi.

Query SELECT

Se vogliamo ottenere o selezionare l’ID dell’ultimo record inserito, il modo piu semplice è quello di utilizzare una query SQL.

 
SELECT id FROM Tabella ORDER BY id DESC LIMIT 1

Oppure possiamo usare anche quest’altra query, che ci restituisce lo stesso risultato:

 
SELECT MAX(id) FROM Tabella

Considerazioni lato codice

Le query che vi abbiamo suggerito fanno riferimento a delle operazioni di manutenzione da svolgere direttamente sul database. Se state sviluppando un applicativo, ad esempio utilizzando il linguaggio PHP è bene porsi qualche problema. Ad esempio:

 
<?php 
/* Tentativo di connessione al server MySQL.
Supponendo che tu stia eseguendo il server MySQL con
impostazione predefinita (utente 'root' senza password) */ 
$link = mysqli_connect("localhost", "root", "", "demo"); 

// Verifica la connessione 
if($link === false){ 
die("ERRORE: Non posso collegarmi. " . mysqli_connect_error()); } 

// Tentativo esecuzione query insert
$sql = "INSERT INTO persons (nome, cognome, email) VALUES ('Ross', 'Ciaglia', '[email protected]')"; 
if(mysqli_query($link, $sql)){ 

// Otteniamo l'ultimo id inserito 
$last_id = mysqli_insert_id($link); 
echo "Record inserito con successo. L'ultimo ID è: " . $last_id; 
} else { 
echo "ERROR: Non posso eseguire $sql. " . mysqli_error($link); 
} 
// Chiude la connessione 
mysqli_close($link); 
?>

È possibile generare sequenze senza chiamare LAST_INSERT_ID (). Ma l’utilità della funzione è che il valore ID viene mantenuto nel server come ultimo generato automaticamente. È sicuro per più utenti perché più client possono emettere l’istruzione UPDATE e ottenere il proprio valore di sequenza con l’istruzione SELECT (o mysql_insert_id ()), senza influenzare o essere influenzati da altri client che generano i propri valori di sequenza.

Conclusioni

Abbiamo visto in questo articolo come MySql può ottenere o recuperare l’ultimo ID del record inserito. Vista l’importanza dell’argomento abbiamo dedicato una sezione del nostro Blog al database MySql che invitiamo a visitare.

Pubblicità