Когда мы передадим аргумент LAST_INSERT_ID ()? - PullRequest
3 голосов
/ 19 августа 2011

Цитируется здесь :

mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1);
mysql> SELECT LAST_INSERT_ID();

Каков вариант использования вышеупомянутого (в чем выгода)?

Я никогда раньше не использовал LAST_INSERT_ID с каким-либо параметром ...

UPDATE

У меня вопрос , почему кто-то хочет смоделировать такой тип последовательности таким образом, когда он автоматически доступен из коробки автоматически автоинкрементным первичным ключом?

Ответы [ 2 ]

0 голосов
/ 19 августа 2011

Запрос, приведенный выше, является запросом на обновление, а запрос просто изменяет идентификатор, который был в строке ранее. Он просто обновляет идентификатор строки, поэтому необходимо обновить его таким образом. Возможно, пользователь захочет изменить индекс строки результатов после некоторой работы над ней. LAST_INSERT_ID вернет последний вставленный идентификатор. И это будет иметь место, только если пользователь хочет изменить индекс строки с предыдущего на тот, который будет последним в наборе результатов.

0 голосов
/ 19 августа 2011

Также цитируется из здесь :

Если в качестве аргумента для LAST_INSERT_ID () указан expr, значение аргумента возвращается функцией и запоминается какследующее значение, которое будет возвращено LAST_INSERT_ID ().Это может быть использовано для симуляции последовательностей:

...