2012-02-08 17 views
5

Bir INSERT INTO sorgusu yürütmeden birincil anahtarım için bir sonraki otomatik artırmanın ne olacağını bulmak mümkün mü? Bazı satırlar silinir, bu da sadece PK'deki bir SELECT MAX sorgusuna eklenmesinin kolay olmadığı anlamına gelir. Çok teşekkürler.Kullanılacak bir sonraki auto_increment'i bulabilir miyim?

+0

Bunu neden bilmek istiyorsun? – Mchl

+0

Evet, bkz. Http://stackoverflow.com/questions/933565/get-auto-increment-value-with-mysql-query –

+0

Teşekkür ederiz. Değeri bulabilir miyim diye merak ettim. – user114671

cevap

7

gerçekten Auto_increment alan örneğin bir sonraki sonraki auto_increment değeri SHOW TABLE STATUS döner denemek bilmek istiyorsanız:

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

Eğer 'from' kullanarak ilk örneği kullanırsanız, bir veritabanı adı belirtmeniz gerekir, tablo adı değil, sadece bu tabloyu almak için 'WHERE name = your_table_name 'ekleyebilirsiniz, eğer veritabanı zaten kullanıyorsanız Database_name'den ve sadece 'WHERE' kullanıp –

+0

@ aron.duby altındaki cevabı kullanarak haklısınız, düzeltildiniz. –

0

izlemeyi deneyin

'yi çalıştırarak değeri al
SHOW TABLE STATUS WHERE Name = nameOfTableHere 

ve sonra sonucu

2

Şunları yapabilirsiniz:

SHOW TABLE STATUS WHERE name = your_table_name; 

veya

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

Bu sütunu 'AUTO_INCREMENT' almak da mümkündür:

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

Bir cevabın zaten kabul edilmiş olduğu bir soruya cevap verecekseniz - cevaplandıktan iki yıl sonra - lütfen doğru bir cevap verin. Bu, satırların silinmiş olduğu gerçeğini hesaba katmadığı için yanlıştır - bu yüzden açılış postamda söylediğim gibi sadece SELECT MAX'a bir tane ekleyemezsiniz. – user114671

+0

Üzgünüm - Ben suçluyum. LIMIT'i unuttum. Çalışma çözümüne güncellendi. SELECT Auto_increment ... durumumda çalışmadı. Bu yüzden alternatif bir çözüm ekledim. – Valter

İlgili konular