Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: конвертация таблицы из старой версии в новую  (Прочитано 8448 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 11-07-2008 16:32 » 

к примеру, имеется таблица старой версии

T1: f1,f2,f3,f4

и новой версии

T1: f1,f4,f5,f6,f7,f8

как одним запросом достать данные из T1 так, чтобы получилась таблица, пригодная для тупой вставки в T2 , то есть:

Код:
T1:
 f1,f2,f3,f4
 1  2  2  1
 4  5  6  3

->

Код:
T2:
 f1, f4, f5,  f6,  f7,  f8
 1   1   NULL NULL NULL NULL
 4   3   NULL NULL NULL NULL

то есть , если поле таблицы T2 есть в T1 , то данные копируются, иначе - NULL
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 11-07-2008 16:37 » 

одна из мыслей - проглядеть метаданные (либо просто проверить наличие полей таблицы 2 в таблице 1 и таким образом собрать нужный запрос). Но хотелось бы волшебный запрос в одну строку SQL Улыбаюсь
Записан

zubr
Гость
« Ответ #2 : 12-07-2008 07:20 » 

Код:
INSERT INTO T2 (f1, f4) SELECT f1, f4 FROM T1
Единственное условие остальные поля в T2 не должны иметь в определении ключевых слов NOT NULL
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 12-07-2008 09:04 » new

zubr, не совсем то, автомата не получается. То есть всё таки запрос нужно вручную состыковывать. Ну да ладно, будем думать )
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 13-07-2008 16:36 » 

Алексей1153++, почему? Давай код создания обеих таблиц - явно что-то неучтено.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 14-07-2008 14:04 » 

так нет, задача пока ещё абстрактная. И ещё один смешной момент - база досталась по наследству, в ней куча всего насоздано уже до меня. И я добавлял потом, настаёт момент, когда пора делать создание чистой базы )
Сейчас пишу скрипт для создания базы с чистого листа - метаданные вытянул IBExpert'om

Вопросы позадаю ещё, когда что то конкретное возникнет
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines