2012-02-08 19 views
5

Có thể tìm hiểu mức tăng tự động tiếp theo sẽ là gì đối với khóa chính của tôi mà không thực hiện truy vấn INSERT INTO? Một số hàng bị xóa có nghĩa là nó không dễ dàng như chỉ thêm một vào một truy vấn SELECT MAX trên PK. Cảm ơn nhiều.Tôi có thể tìm ra auto_increment tiếp theo được sử dụng không?

+0

Tại sao bạn lại muốn biết điều đó? – Mchl

+0

Có, hãy xem http://stackoverflow.com/questions/933565/get-auto-increment-value-with-mysql-query –

+0

Cảm ơn bạn. Tôi chỉ tò mò muốn biết liệu tôi có thể tìm ra giá trị hay không. – user114671

Trả lời

7

Nếu bạn thực sự muốn biết giá trị auto_increment tiếp theo thử SHOW TABLE STATUS lợi nhuận sau Auto_increment lĩnh vực, ví dụ:

SHOW TABLE STATUS WHERE name = your_table_name; 

hoặc

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

nếu bạn sử dụng ví dụ đầu tiên bằng cách sử dụng 'from' bạn phải chỉ định tên cơ sở dữ liệu, không phải tên bảng, bạn có thể thêm' WHERE name = your_table_name 'để có được bảng đó, nếu bạn đã sử dụng cơ sở dữ liệu FROM database_name' và chỉ sử dụng 'WHERE' như câu trả lời bên dưới –

+0

@ aron.duby, bạn đã đúng, sửa chữa. –

0

Hãy thử như sau:

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

Bạn có thể nhận giá trị bằng cách thực hiện

SHOW TABLE STATUS WHERE Name = nameOfTableHere 

và sau đó lấy cột 'AUTO_INCREMENT' từ kết quả

0

này cũng có thể:

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

Nếu bạn định trả lời câu hỏi mà câu trả lời đã được chấp nhận - hai năm sau khi câu trả lời được trả lời - sau đó vui lòng trả lời đúng. Điều này là không chính xác vì nó không tính đến thực tế rằng các hàng đã bị xóa - vì vậy bạn không thể chỉ thêm một vào SELECT MAX - như tôi đã nói trong bài viết mở đầu của tôi. – user114671

+0

xin lỗi - Tôi có tội. Tôi quên LIMIT. Cập nhật giải pháp làm việc. SELECT Auto_increment ... không hoạt động trong tình huống của tôi. Đó là lý do tại sao tôi đã thêm giải pháp thay thế. – Valter

Các vấn đề liên quan