2012-02-08 10 views
5

È possibile scoprire quale sarà il prossimo incremento automatico per la mia chiave primaria senza eseguire una query INSERT INTO? Alcune righe vengono eliminate, il che significa che non è così semplice come aggiungerne una a una query SELECT MAX sul PK. Grazie molto.Posso trovare il prossimo auto_increment da utilizzare?

+0

perché si vuole sapere che? – Mchl

+0

Sì, consultare http://stackoverflow.com/questions/933565/get-auto-increment-value-with-mysql-query –

+0

Grazie. Ero solo curioso di sapere se potevo scoprire il valore. – user114671

risposta

7

Se si vuole veramente sapere successivo valore auto_increment provare SHOW TABLE STATUS rendimenti prossimo Auto_increment campo, ad esempio:

SHOW TABLE STATUS WHERE name = your_table_name; 

o

SELECT Auto_increment 
FROM information_schema.tables 
WHERE table_schema = DATABASE() AND table_name = your_table_name 
+0

se si usa il primo esempio usando 'from' è necessario specificare un nome di database, non un nome di tabella, è possibile aggiungere' WHERE name = your_table_name 'per ottenere solo quella tabella, di se si sta già utilizzando il database rilasciare ' FROM database_name' e basta usare 'WHERE' come la risposta sotto –

+0

@ aron.duby, hai ragione, corretto. –

0

Prova il seguente:

SELECT Auto_increment 
    FROM information_schema.tables 
    WHERE table_name= 'tableName' 
    AND table_schema = DATABASE(); 
2

Puoi ottenere il valore eseguendo

SHOW TABLE STATUS WHERE Name = nameOfTableHere 

e quindi recuperare la colonna 'AUTO_INCREMENT' dal risultato

0

anche questo è possibile:

(SELECT (SELECT your_primary_key FROM Your_Table ORDER BY your_primary_key DESC LIMIT 1)+1); 
+0

Se hai intenzione di rispondere a una domanda per la quale è già stata accettata una risposta - due anni dopo la sua risposta - allora si prega di dare una risposta corretta. Questo non è corretto in quanto non tiene conto del fatto che le righe sono state cancellate - quindi non è possibile aggiungerne una al SELECT MAX - come ho detto nel mio post di apertura. – user114671

+0

scusa - Sono colpevole. Ho dimenticato LIMIT. Aggiornato alla soluzione di lavoro. SELEZIONA Auto_increment ... non ha funzionato nella mia situazione. Ecco perché ho aggiunto una soluzione alternativa. – Valter

Problemi correlati