Как при INSERT в поле таблицы записать значение поля autoincrement?

  • Автор темы benchpress
  • Дата начала

benchpress

Guest
Как при INSERT в поле таблицы записать значение поля autoincrement?

Добрый день!

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

benchpress

Guest
Originally posted by Нечто
mysql_insert_id
А будет ли это правильно? Как я понял, LAST_INSERT_ID() возвращает последний присвоенный идентификатор и запрос типа

PHP:
INSERT INTO table (increment_copy) VALUES (LAST_INSERT_ID())
добавляет запись с предыдущим значением автоинкрементного поля.

Originally posted by neko
а зачем?
В таблице будет поле, которое будет содержать значение автоинкрементного идентификатора для записей, которые были созданы обычным образом, и другое значение для тех записей, которые "импротированы" из других БД, т.е. "неродные" для этой БД. Сорри за корявость, кратко сложно описать. :)
 

Фанат

oncle terrible
Команда форума
тем же запросом невозможно.
о чем, кстати, черным по белому написано в одукментации, если бы кто-то удосужился её прочитать
 

benchpress

Guest
Originally posted by neko
нет это не будет правильно
в любом случае
Вот я и задумался, можно ли это сделать сразу в INSERT, или обязательно понадобится второй запрос на UPDATE?
 

Фанат

oncle terrible
Команда форума
В таблице будет поле, которое будет содержать значение автоинкрементного идентификатора для записей, которые были созданы обычным образом, и другое значение для тех записей, которые "импротированы" из других БД, т.е. "неродные" для этой БД.
из этого описания никак не следует, зачем тебе понадобилось извращение с записью сгенеренного повторно.
 

benchpress

Guest
Originally posted by Фанат
из этого описания никак не следует, зачем тебе понадобилось извращение с записью сгенеренного повторно.
Мне нужно во всех INSERT при "обычной" работе с БД копировать в дополнительное поле значение автоинкремента. Периодически будут загружатсья данные из других БД, при этом в это поле будет записываться его оригинальное значение, перенесенное из той БД. Т.е. для импортированных записей оно не будет равно значению автоинкремента.
 

benchpress

Guest
Originally posted by Фанат
зачем тебе копия? записывай туда ноль
Есть таблица с автоинкрементным идентификатором, в которую переиодически сливаются данные из такой же таблицы в других БД.
Идентификатором записи в текущей БД является автоинкремент. Идентификатором записи во всех БД (для целей синхронизации) является комбинация полей "Код БД" и "Копия автоинкремента". Вот мне и хотелось для добавляемых записей сразу переносить туда присвоенное значение.
 

Фанат

oncle terrible
Команда форума
я мею в виду - почему именно копия?
Чем не устраивает ОРИГИНАЛ?
 

benchpress

Guest
Originally posted by Фанат
я мею в виду - почему именно копия?
В это поле будут храниться значения полей автоинкремента из каждой базы.
Например:
ai - автоинкремент
bd - код БД
copy - копия автоинкремента

Код:
База 1
ai     bd     copy
1      1       1
2      1       2
3      1       3

База 2
ai     bd     copy
1      2       1
2      2       2
3      2       3

База 1 после синхронизации:
ai     bd     copy
1      1       1
2      1       2
3      1       3
4      2       1
5      2       2
6      2       3
В итоге (bd,copy) будет уникальным идентификатором записи в этих БД.
 

Фанат

oncle terrible
Команда форума
а bd,id - не будет???

-~{}~ 02.02.05 16:09:

стоп.
так тебе копия чего нужна? id из вставляемой таблицы или id той таблицы, в которую вставляют.
Судя по тому, что ты тут нарисовал - первое.
НО ПРИ ЧЕМ ТУТ ТОГДА СГЕНЕРЁРННЫЙ ПРИ ВСТАВКЕ ID?!
 

benchpress

Guest
Я ведь не смогу при загрузке данных из другой БД добавить записи с уже существующим автоинкрементом. А в моем примере автоинкремент себе инкрементируется дальше, а идентифкатор строится по двум другим полям.
 

benchpress

Guest
Originally posted by Фанат
так тебе копия чего нужна? id из вставляемой таблицы или id той таблицы, в которую вставляют.
Мне для записей, которые добавляются при "обычной" работе пользователей с этой БД нужна копия текущего ID. А при загрузке данны в это поле перенесется копия ID из той таблицы, откуда идет загрузка.
 

Фанат

oncle terrible
Команда форума
зачем тебе копия, если у тебя есть оригинал?
Алё, гараж, я этот вопрос, между прочим, второй раз повторяю. Энибади хоум?
 
Сверху