Факт
Нет эквивалента LAST_INSERT_ID()
, возвращающему нецелое значение.
Можно просто
- Простой подход
Добавьте целочисленный столбец, который может быть автоматически увеличен или не увеличен автоматически.
Чтобы он автоматически увеличивался правильно, нужно, по крайней мере, реализовать алгоритм в самом MySQL или на языке по своему выбору, чтобызаполните существующие записи новыми идентификаторами.
Более сложный подход
https://stackoverflow.com/a/53481729/2323764 (@kellymandem)
Добавить вторую таблицу, управляющую идентификатором и инициируемую исходной таблицей без идентификаторов.
Невозможно
Я нашел этот очень многообещающий Q / A.
Есть ли способ получить последний вставленный идентификатор столбца без автоматического увеличения в MySQL?
Упоминается, что там уже используется LAST_INSERT_ID()
в выражении INSERT
.
Но
INSERT INTO `table` ( `non_integer_column` ) VALUES ( LAST_INSERT_ID( 42 ) );
SELECT LAST_INSERT_ID( );
-> 42
INSERT INTO `table` ( `non_integer_column` ) VALUES ( LAST_INSERT_ID( 'a0b1c2d3e4f5' ) );
SELECT LAST_INSERT_ID( );
-> 0
Нецелочисленные значения будут игнорироваться.