Официальный сайт студ.городка НГТУ
Программирование и БД » [mysql] склеивание таблиц 

#1  11.03.07 00:09

[mysql] склеивание таблиц

Существует два сервера mysql №1 и №2. На каждом есть таблица tbl1 с одинаковой структурой, но с разными данными. Необходимо их склеить на сервере №1, чтобы в итого получилось  №1.tbl1 = №1.tbl1 + №2.tbl1.

Offline

#2  11.03.07 01:37

asp
Профиль

Re: [mysql] склеивание таблиц

insert select?

Offline

#3  11.03.07 01:37

asp
Профиль

Re: [mysql] склеивание таблиц

больше интересно, как выбрать строки, не совпадающие :-/

Offline

#4  11.03.07 10:34

Re: [mysql] склеивание таблиц

с помощью left join можно сделать разность множеств

Offline

#5  11.03.07 10:41

Re: [mysql] склеивание таблиц

create table #t1 (id int)
insert into #t1 VALUES (1)
insert into #t1 VALUES (2)
insert into #t1 VALUES (3)
insert into #t1 VALUES (4)
insert into #t1 VALUES (5)


create table #t2 (id int)
insert into #t2 VALUES (3)
insert into #t2 VALUES (4)
insert into #t2 VALUES (5)
insert into #t2 VALUES (6)
insert into #t2 VALUES (7)

select #t1.id from #t1 left join #t2 on #t1.id = #t2.id
where #t2.id is null

Offline

#6  11.03.07 10:52

Re: [mysql] склеивание таблиц

сделай темп таблицу, загони туда обе таблички а потом dist-вый селект по нужным параметрам с перегоном данных в новую таблицу.
это самый простой варинат который в голову приходит -)

Offline

#7  11.03.07 11:37

asp
Профиль

Re: [mysql] склеивание таблиц

Prdd написал(а):

select #t1.id from #t1 left join #t2 on #t1.id = #t2.id
where #t2.id is null

не въехал ((

Offline

#8  11.03.07 11:48

Re: [mysql] склеивание таблиц

а по теме что нить можно?

Offline

#9  11.03.07 12:59

Re: [mysql] склеивание таблиц

materazzi написал(а):

а по теме что нить можно?

Я не силен в mysql, но запрос для передачи данных написать смогу. Ты напиши, как тебе надо "склеить" данные: просто добавить в таблицу1 все(!) данные из таблицы2 или добавить в таблицу1 только те данные из таблицы2, которых в ней нет.

Offline

#10  11.03.07 13:04

Re: [mysql] склеивание таблиц

asp написал(а):

Prdd написал(а):
select #t1.id from #t1 left join #t2 on #t1.id = #t2.id
where #t2.id is null
не въехал ((

Результат будет

1
2

т.е. данные из таблицы 1, которых нет в таблице 2. Их, если я правильно понял вопрос, и надо затолкать в таблицу 2

Offline

#11  11.03.07 13:16

Re: [mysql] склеивание таблиц

Prdd, просто добавить в таблицу1 все(!) данные из таблицы2

Offline

#12  11.03.07 16:04

Re: [mysql] склеивание таблиц

INSERT INTO tbl1 SELECT field1, field2,...fieldN FROM tbl2
все данные добавятся. Естественно, кол-во и тип полей должны совпадать

Offline

#13  11.03.07 20:28

Re: [mysql] склеивание таблиц

погодите, базы то разные.на разных серверах

Исправлено Stell Hawk (11.03.07 20:29)

Offline

#14  11.03.07 20:32

Re: [mysql] склеивание таблиц

Знаю как это разрулить в sql server'e, но не знаю как в mysql :(

Offline

#15  11.03.07 22:33

asp
Профиль

Re: [mysql] склеивание таблиц

materazzi, первый мой пост. Если подробнее -

Prdd написал(а):

INSERT INTO tbl1 SELECT field1, field2,...fieldN FROM tbl2

Вставляй результат селекта.

Offline

#16  11.03.07 22:42

Re: [mysql] склеивание таблиц

asp написал(а):

Вставляй результат селекта.

видимо, вопрос в том, что

Stell Hawk написал(а):

погодите, базы то разные.на разных серверах

поэтому запрос без указания базы не прокатит.

Offline

#17  12.03.07 10:12

Re: [mysql] склеивание таблиц

Кластерная репликация тебе поможет. Читай маны.

Offline

#18  12.03.07 13:53

Re: [mysql] склеивание таблиц

гм....напиши скрипт переноса..он блин делается в 3 минуты....
Prdd- дык приколист а соеденения с базой создать не хочешь? раз они на разных серверах?

Offline

#19  12.03.07 14:01

Re: [mysql] склеивание таблиц

если уникальное поле id то

Код: php:

Запрос ()
while($row=mysql_fetch_assoc($query))
{
   unset($row['id']);
   $sql1=implode(", ",array_keys($row));
   $sql2="'";
   $sql2.=implode("', '",$row);
   $sql2.="'";
  Запрос ("insert into tbl1 (".$sql1.") values(".$sql2.")");
}

не проверял но вроде так

Исправлено Stell Hawk (12.03.07 14:01)

Offline

#20  12.03.07 14:11

Re: [mysql] склеивание таблиц

а не проще сделать дамп на втором и отресторить на первом :)) ?

Offline

#21  12.03.07 14:46

Re: [mysql] склеивание таблиц

хорошая идея, но как это сделать например используя крон. Надо ведь с сервера на сервер перекинуть файл дампа.

Исправлено A-Lex (12.03.07 14:46)

Offline

#22  12.03.07 16:41

asp
Профиль

Re: [mysql] склеивание таблиц

двумя кронами :)))

Или одним кроном: подцепиться и сделать дамп, а вторым шагом уже отресторить. ИМХО, неправильное направление мыслей. Мускулем делается вроде...

Offline

#23  13.03.07 09:42

Re: [mysql] склеивание таблиц

в mysql есть репликация, можно использовать ее

Offline

Программирование и БД » [mysql] склеивание таблиц 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.059 сек.
Выполнено 11 запросов.