PDA

View Full Version : SQL, conoscere id di un nuovo record di MySQL


Herod2k
10-01-2007, 10:35
Ipotizziamo di avere una tabella con un campo ID di tipo INT che si auto incrementa.

E' possibile tramite qualche sorta di query al DB scoprire qual'è il valore che avrà l'ID di un nuovo record?

Potrei pescare l'ultimo ID e fare un +1, ma non è cosi facile, mettiamo di avere avere 21 record nel db e l'ultimo ID è appunto 21, ipotizziamo di cancellare il record 21 con il sistema descritto prima l'ID più alto sarebbe 20 quindi +1 otterrei 21, un risultato sbagliato perché mysql mi assegnerebbe il 22 in automatico (non so se sono stato molto chiaro).

Grazie per gli eventuali consigli.

H2K

andbin
10-01-2007, 11:16
Ipotizziamo di avere una tabella con un campo ID di tipo INT che si auto incrementa.

E' possibile tramite qualche sorta di query al DB scoprire qual'è il valore che avrà l'ID di un nuovo record?Puoi ottenere l'ID generato per un campo AUTO_INCREMENT dopo che hai fatto una query di INSERT usando la funzione mysql_insert_id()

Herod2k
10-01-2007, 11:34
Puoi ottenere l'ID generato per un campo AUTO_INCREMENT dopo che hai fatto una query di INSERT usando la funzione mysql_insert_id()
si si questo l'avevo trovato, posso anche fare una query e cercare il valore max (id), la domanda è: posso farlo prima di creare il recordset?
Da qualche parte MySQL terrà le informazioni per i campi auto_increment...c'è modo per tirarli fuori?

Grazie per l'aiuto.

H2K

kk3z
10-01-2007, 12:16
Fai questa query:
SHOW TABLE STATUS LIKE '%table_name%'

il prossimo valore dell'auto_increment è nella colonna "Auto_increment"

Herod2k
10-01-2007, 13:12
Fai questa query:
SHOW TABLE STATUS LIKE '%table_name%'

il prossimo valore dell'auto_increment è nella colonna "Auto_increment"
:ave: :ave: :ave:

grazie kk3z era proprio esattamente quello che cercavo :D

Grazie mille :flower:

H2K