2012-06-04 5 views

ответ

0
SELECT MAX(that_field) AS last_auto_increment_value FROM that_table; 

ИЛИ

SELECT auto_increment -1 AS last_auto_increment_value 
FROM information_schema.tables 
WHERE table_name='that_table' 
AND table_schema = 'that_database'; 

ИЛИ

mysql_insert_id() //in PHP 
+0

Почему вы должны использовать эти сложные запросы вместо mysql_insert_id или эквивалент PDO? – stUrb

+2

'SELECT MAX()' будет возвращать наибольшее значение, которое может быть или не быть последним из последней вставки. С 'mysql_insert_id()' он вернет идентификатор, созданный из 'INSERT', так как он находится на том же экземпляре подключения –

+0

@stUrb Я не очень внимательно прочитал вопрос. – cypher

1

От php.net/mysql_insert_id

mysql_query("INSERT INTO mytable (product) values ('kossu')"); 
printf("Last inserted record has id %d\n", mysql_insert_id()); 
1

Вот три различные подхода, из трех наиболее часто используемых библиотек, которые могут взаимодействовать с MySQL (MySQL, MySQLi, PDO)

mysql_insert_id(...) [процедурная функция]

mysqli::$insert_id [ООП имущество]

PDO::lastInsertId(...) [ООП-метод]

1

PDO :: lastInsertId - Возвращает идентификатор последней вставленной строки или последовательности значения

PDO::lastInsertId()

Смежные вопросы