Человек знает только один способ выбрать название для программы:
Майкл Видениус живёт в Туусуле — муниципалитете к северу от Хельсинки со второй женой Анной и дочерью Марией, также от первого брака есть дочь Мю (по одной из версий её имя послужило названием системы управления базами данных MySQL) и сын Макс (давший название системе управления реляционными базами данных MaxDB).
Видениус в настоящее время работает над ветвью кодовой базы MySQL движка базы данных Maria. Продукт известен под названием MariaDB и назван в честь младшей дочери Видениуса.
Задача: получить идентификатор только что добавленной в таблицу записи.
Необходимое условие: в таблице должно быть AUTO_INCREMENT поле.
Решение (MySQL): SELECT LAST_INSERT_ID();
Решение (PHP/MySQL): mysql_insert_id();
Решение (MsSQL): SELECT @@IDENTITY AS ID;
Замечания:
- Сбросить (поменять) значение Next Autoindex в MySQL: ALTER TABLE `table_name` AUTO_INCREMENT = 238;
- При выполнении INSERT запроса на добавление нескольких записей (insert into `table_name` (field1,…,fieldm) values (’value11′,…,’value1m’), …, (’valuen1′,…,’valuenm’);) MySQL в качестве LAST_INSERT_ID возвращает идентификатор первой вставленной записи, а не последней, как можно было бы предположить.
- В некоторых версиях MySQL был баг: при неуспешном выполнении команды INSERT IGNORE (если уникальный ключ уже существует и ничего не добавляется) LAST_INSERT_ID возвращает следующее доступное значение для авто-инкремента.
- Не использовать LAST_INSERT_ID, когда его надо использовать, нельзя. Вариант “быстренько пишем в базу и мгновенно делаем SELECT максимального значения авто-инкремента” ужасен и нестабилен.