SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.07.2009 18:47:37

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Игнор last_id :)

Возможен ли сабж?
Строю такую системы, чтобы каждый запрос изменения данных вставлялся в спец.таблицу логов, при этом есессно данная таблица имеет свой авто икремент, после чего LAST_ID становится неправильным smile

Можно ли как-то проигнорить запись в LAST_ID при выполнении определённого запроса, чтобы в LAST_ID осталось старое значение?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#2 25.07.2009 18:55:48

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Игнор last_id :)

Буквально этого сделать нельзя, но можно обойти двумя способами
1. В таблице логов убрать авто-инкремент (можно использовать текущую дату, например)
2. После каждого реального запроса сохранять значение LAST_ID в переменную сессии

SET @lastid := LAST_INSERT_ID();

и затем использовать ее

Неактивен

 

#3 25.07.2009 19:58:42

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Игнор last_id :)

Про дату я тоже думал, но это разве-что UUID использовать, ибо в одну секунду может быть несколько запросов. Это разве что ручной автоинкремент сделать...
За второй пункт спасибо, не подумал о такой затычке)))


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson