Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Advantage Database Server > AutoInc when INSERT


Автор: nellyk 19.2.2012, 21:59
Нужно: создать таблицу, содержащую выборку записей из другой таблицы с сохранением структуры. В структуре присутствует автоинкрементное поле, поэтому, выполняя 
INSERT INTO TABLE2 SELECT * FROM TABLE1 WHERE ...., получим измененные значения автоинкрементного поля.
Варианты типа: поменять AutoInc на Integer, заполнить, заменить Integer на AutoInc - понятны. Хотелось бы попроще.

В Microsoft SQL можно было (на время переписывания) отключить Автоинкремент, а потом опять включить.
Нет ли чего-либо подобного в Advantag-е? 

Заранее спасибо.

Автор: Akina 19.2.2012, 23:04
Если указывать явно набор полей, а не тупо звёздочку, включая и автоинкрементное поле, то при отсутствии ошибок дублирования в новую таблицу должны попадать значения из таблицы-источника.

Автор: nellyk 19.2.2012, 23:26
Цитата(Akina @ 19.2.2012,  23:04)
Если указывать явно набор полей, а не тупо звёздочку, включая и автоинкрементное поле, то при отсутствии ошибок дублирования в новую таблицу должны попадать значения из таблицы-источника.

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

Автор: Akina 20.2.2012, 09:27
Цитата(nellyk @  20.2.2012,  00:26 Найти цитируемый пост)
скрипт разрастется до гигантских размеров

Сервер всё равно разворачивает её до "гигантских размеров" - это ни на что не влияет.

Цитата(nellyk @  20.2.2012,  00:26 Найти цитируемый пост)
его придется менять при изменениях структуры таблиц

А почему бы сразу не спроектировать базу как нужно? чтобы не приходилось менять структуры хранения данных...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)