Как получить следующий идентификатор автоматического инкремента в таблице mysql?

Мне нужно получить следующий идентификатор автоматического инкремента из моей таблицы продуктов mysql.

Вот как я это пробовал:

SELECT `auto_increment` FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'products'; 

Когда этот запрос запущен, я могу получить такой вывод.

 +----------------+ | auto_increment | +----------------+ | 10 | | 1 | | 14 | +----------------+ 3 rows in set (0.02 sec) 

Может ли кто-нибудь сказать мне, почему он показывает 3 значения. (3 строки)

ПРИМЕЧАНИЕ. Моя таблица продуктов по-прежнему пуста.

 mysql> select * from products; Empty set (0.00 sec) 

Solutions Collecting From Web of "Как получить следующий идентификатор автоматического инкремента в таблице mysql?"

Запустить этот запрос

 SHOW TABLE STATUS LIKE 'products' 

Использование php

 $result = mysql_query(" SHOW TABLE STATUS LIKE 'products' "); $data = mysql_fetch_assoc($result); $next_increment = $data['Auto_increment']; 

Использование mysqli

 $db = new mysqli('YOUR_HOST', 'DB_USERNAME', 'DB_PASSWORD', 'DATABASE'); if($db->connect_errno > 0){ die('Unable to connect to database [' . $db->connect_error . ']'); } $sql = <<<SQL SHOW TABLE STATUS LIKE 'products' SQL; if(!$result = $db->query($sql)){ die('There was an error running the query [' . $db->error . ']'); } $row = $result->fetch_assoc(); echo $row['Auto_increment']; 

Подробности https://stackoverflow.com/a/1372115

Вы не указали имя базы данных в запросе. У вас может быть таблица «продуктов» в другой базе данных. Если вы не используете «TRUNCATE», чтобы очистить таблицу, идентификатор auto_increment остается таким же, как и раньше. Неважно, что у вас нет данных в таблице.

Выполните этот запрос:

 SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = "databaseName" AND TABLE_NAME = "tableName" 

Это поможет вам узнать следующий идентификатор auto_increment.