Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Вниз

Вставка записей, есть вопрос   Найти похожие ветки 

 
Tornado ©   (2005-02-07 10:03) [0]

задача такая: нужно вставить в таблицу А данные из других таблиц (другой БД), но в таблице А имеется поле для связи с другими таблицами, допустим поле "ID". Я составил такой запрос:

SQL.Add("INSERT INTO tbl_Main (Dlina_uch, Kabel, Us_uchastok)");
SQL.Add("SELECT tbl_Frames.FrameLength AS Dlina_uch, tbl_Frames.TypeName AS Kabel, tbl_CableParams.CableName AS Us_uchastok");
SQL.Add("FROM tbl_Frames, tbl_CableParams IN "D:\IRKPRO.mdb" WHERE tbl_Frames.CableName = tbl_CableParams.CableName");

хотелось бы еще в таблицу tbl_Main вставить в поле "ID" определенный номер, допустим "10". Спасибо


 
Johnmen ©   (2005-02-07 10:17) [1]

INSERT INTO tbl_Main (ID, Dlina_uch, Kabel, Us_uchastok)
SELECT 10, tbl_Frames.FrameLength, ...
...


 
Tornado ©   (2005-02-07 10:45) [2]

спасибо, только теперь другой вопрос :)
в главную таблицу можно вставить записи просто так если в этой таблице поле ID автоикрементное то оно заполняется само, но есть другая таблица в которую также вставляются записи из других таблиц, данные в таблицах идентичны, т.е.:
Таблица А (с автоинкрементом ID)
ID  FieldA   FieldB
1   ddd      ttt
2   www      rrr
3   ссс      иии
4   yyy      uuu

Таблица В (вот в нее надо занести теже значения поля ID что и в таблице А):
ID  FieldA   FieldB
1   ddd      ttt
1   ddd      ttt
2   www      rrr
2   www      rrr
3   ccc      иии
3   ссс      иии
4   yyy      uuu
4   yyy      uuu

т.е. эти две талицы А и В должны быть соеденины по принципу "один-ко-многим"
4


 
Johnmen ©   (2005-02-07 10:54) [3]

Сначала переливаешь в первую таблицу. (справочник)
Потом переливаешь во вторую, соединяя первую с той, из которой заливаем.


 
Tornado ©   (2005-02-07 11:06) [4]

>> Потом переливаешь во вторую, соединяя первую с той, из которой заливаем.

если чесно то не очень понял, в первую слили данные, а дальше во втроую как? чтобы для записи в первой таблице ID был такой же во второй таблице, там же несколько записей с таким ID должны быть....блин запутался я чего то :)


 
Johnmen ©   (2005-02-07 11:19) [5]

Для заливки во вторую целевую (destination) тбл делаешь селект из двух таблиц:
1 - залитая первая (destination), 2 - незалитая вторая (source).


 
Tornado ©   (2005-02-07 11:38) [6]

у меня во вторую таблицу данные заносятся из другой БД, как и в первом посте, "залитая первая" - это уже в моей БД, (хотя по началу в нее тоже заливаются данные из бд irkpro.mdb), а "незалитая вторая" - из другой бд (irkpro.mdb), как выудить необходимые данные из irkpro.mdb да потом заполнить поле id во втрой целевой таблице значениями соответствующими id таблицы "залитой первой (destination)" :))


 
msguns ©   (2005-02-07 11:55) [7]

Если надо "слить" однотипные данные из разных БД, имеющих иерархическую структуру информации (основые и подчиненные элементы), то, ИМХО, не обойтись без таблиц перекодировки ID.
Дело в том, что ID мастер-таблиц в БД независимы друг от друга и, ессно, могут повторяться. Чтобы избежать конфликтов, надо в "Репликационной БД" (промежуточной) создать спец.таблицу переидентификации, где помимо ID (автоинкремент) надо еще предусмотреть поле OLDID. В эту таблицу сначала загоняются все записи мастер-таблиц основной и добавочной БД, в результате чего получаем сквозной ID. Далее с помощью простых запросов "перегоняем" деталы, связывая с мастер-записями по OLDID, и в качестве нового связующего поля берем значение нового ID.

Но это в простом случае, если в БД нет логически дублированных объектов. Если есть, то алгоритм репликации существенно усложняется. В частности, надо определить логические ключи объектов и "шаманить" с ними.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.034 c
14-1108507168
Луарвик
2005-02-16 01:39
2005.03.06
Ура! БД MySQL


14-1108063526
bot v0.00000001
2005-02-10 22:25
2005.03.06
!!!!помогите решить задачу!!!!


4-1105958331
IllusoryOrion
2005-01-17 13:38
2005.03.06
WM_NCLBUTTONUP


1-1109098758
Knoxville
2005-02-22 21:59
2005.03.06
Как закодировать данные?


14-1108487639
Petr V. Abramov
2005-02-15 20:13
2005.03.06
Хорошая статья по управлению памятью в Linux





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский