Как получить последний идентификатор с помощью PHPПолучить идентификатор последней вставленной строки ORACLE/PHP
аналогичных mysqli_insert_id($conexao)
Как получить последний идентификатор с помощью PHPПолучить идентификатор последней вставленной строки ORACLE/PHP
аналогичных mysqli_insert_id($conexao)
Предполагая, что ваши идентификаторы автоинкрементные в порядке возрастания можно запросить для самого высокого идентификатора ...
SELECT id from table ORDER BY id DESC LIMIT 1
, что должно дать вам самый высокий идентификатор, и если ваши идентификаторы автоинкрементным это должно быть последняя запись ...
Многие программы Oracle используйте database objects called SEQUENCE
s для генерации уникальных идентификаторов. Если вы знаете, какая последовательность используется для идентификатора в таблице вы просто INSERT
ред в, просто сказать
SELECT sequencename.CURRVAL FROM DUAL;
сразу после вставки, в то же соединение с базой данных, и вы получите номер документа.
SELECT MAX(id)
и аналогичные конструкции работают нормально, если только вы только когда-либо имеете одно соединение с базой данных: это означает, что они не работают. В основном они не являются потокобезопасными. Они также дороже, чем CURRVAL
.
Это относится к условиям гонки и, как известно, ненадежно. –
Я не знал о каких-либо условиях гонки или ненадежности по этому запросу ... Если это действительно так, то можно использовать SELECT MAX (id) из таблицы ... – Tim
Что делать, если у вас несколько клиентских программ базы данных, вставляющих строки в таблицу ? Это гонка. 'MAX()' имеет ту же проблему. –