Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2015, 09:47   #1
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию добавление из одной таблицы в другую

собственно сам вопрос, как это сделать,НО! без добавления одинаковых записей. сделать проверку по одному полю. например:
Петров Петр
Петров Сергей
Сидоров Павел

Сделать проверку по столбцу фамилия.
Если фамилия Петров в таблице2 уже есть, то не надо вставлять.
Ernest027 вне форума Ответить с цитированием
Старый 05.08.2015, 10:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Сделать уникальный ключ по добавляемым полям не вариант?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.08.2015, 10:56   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
insert into t2 (xx, yy, ...)                            --добавить в t2
select xx, yy, ...  
from t1                                                 --из t1
where not exists                                        -- которых нет
      ( select * from t2                                -- в t2
        where                                           -- и как узнать что такая есть
             t1.xx =t2.xx and t1.yy =t2.yy and ...)
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 05.08.2015, 11:00   #4
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

а методом locate можно?
Ernest027 вне форума Ответить с цитированием
Старый 05.08.2015, 12:11   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Ernest027 без добавления одинаковых записей.
Ernest027 научите гуглит смотреть документаций и тренируйте https://msdn.microsoft.com/en-us/library/bb510625.aspx
еще можно смотреть предыдущие тема http://programmersforum.ru/showthrea...=280900&page=2
Изображения
Тип файла: jpg merge.jpg (120.7 Кб, 149 просмотров)

Последний раз редактировалось xxbesoxx; 05.08.2015 в 12:42.
xxbesoxx вне форума Ответить с цитированием
Старый 05.08.2015, 13:23   #6
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

из таблицы OborudovanieAdd (ADOQuery6) вставляю в Oborudovanie (ADOQuery3)

Код:
DataModule2.ADOQuery3.Close;
DataModule2.ADOQuery3.SQL.Add('insert into Oborudovanie ([Наименование единицы],[Оперативный номер], [Тип оборудования], [Заводской номер], [Технические характеристики], [Год выпуска]');
DataModule2.ADOQuery3.SQL.Add('select [Наименование единицы],[Оперативный номер], [Тип оборудования], [Заводской номер], [Технические характеристики], [Год выпуска]');
DataModule2.ADOQuery3.SQL.Add('from OborudovanieAdd');
DataModule2.ADOQuery3.SQL.Add('where not exists');
DataModule2.ADOQuery3.SQL.Add('select * from Oborudovanie');
DataModule2.ADOQuery3.SQL.Add('where OborudovanieAdd.[Оперативный номер] =Oborudovanie.[Оперативный номер]');
DataModule2.ADOQuery3.ExecSQL;
так?

Последний раз редактировалось Stilet; 05.08.2015 в 13:56.
Ernest027 вне форума Ответить с цитированием
Старый 05.08.2015, 13:57   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В целом логично, но лучше так не делать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.08.2015, 14:01   #8
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

А как тогда?
Ernest027 вне форума Ответить с цитированием
Старый 05.08.2015, 14:09   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

[Оперативный номер] и есть уникальный ключ? Можно так, скобок только кучку потерял. И лучше ... not exists (select 0 from ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.08.2015, 14:11   #10
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Ernest027 так?
Код:
with  DataModule2.ADOQuery3 do
begin
Close;
SQL.Clear;
SQL.Text := 'insert into Oborudovanie ([Наименование единицы],[Оперативный номер], [Тип оборудования], [Заводской номер], [Технические характеристики], [Год выпуска]'+
            'select [Наименование единицы],[Оперативный номер], [Тип оборудования], [Заводской номер], [Технические характеристики], [Год выпуска]'+
            'from OborudovanieAdd'+
            'where not exists'+
            'select * from Oborudovanie'+
            'where OborudovanieAdd.[Оперативный номер] =Oborudovanie.[Оперативный номер]'+
	    'and OborudovanieAdd.[Тип оборудования] =Oborudovanie.[Тип оборудования] '+
	    'and OborudovanieAdd.[Заводской номер] =Oborudovanie.[Заводской номер] ';
ExecSQL;
end
Цитата:
Аватар И лучше ... not exists (select 0 from ...
Да помню вы меня на триггер показали это пример http://programmersforum.ru/showthrea...=274954&page=2 .

Последний раз редактировалось xxbesoxx; 05.08.2015 в 14:14.
xxbesoxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение ОДНОЙ записи из одной таблицы в другую Vongud БД в Delphi 28 10.04.2015 21:47
Добавление значений из одной таблицы в другую. Abay19941308 БД в Delphi 5 04.12.2013 15:56
перенос из одной таблицы БД в другую WishHunter Помощь студентам 9 21.02.2013 08:15
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую reihtmonbern БД в Delphi 4 17.07.2012 23:25
Передача данных из одной таблицы в другую, при выборе одной ячейки MickMick Microsoft Office Excel 6 06.10.2008 13:57