|
запрос: копирование и обновление таблиц
|
|||
---|---|---|---|
#18+
здравствуйте! подмогните чайнику) задача - скопировать часть одной таблицы(t2) в другую(t1), колонки различаются минимально, колонок в таблице много (100 в одной, 102 в другой, например). replace into t1(1,2,3,..,85) select 1,2,3,..,85 from t2 не подходит, т.к., остальные 86...100 полей обновлять не планируется, а они пробиваются нулями, если там ничего нет. мб, возможно как-то настроить replace, чтобы он обновлял только указанные поля? я не нашел, пишут про insert, что остальные строго пробиваются нулями, дефолтом (или полями таблицы 2, если выборку расширить) update t1 set 1 = select 1 from t2 where t1.key1=t2.key1 - хорошо для одного поля. когда полей 100 и объектов за раз штук 500 - уже беда, транзакции из 10 метров текста пугают. и 50000 селектов тоже сильно сказываются на производительности. мб, можно апдейтить сразу группу полей? пока решил проблему, делая select нужных полей из t2, переформировывая(по мере надобности) и апдейча поля t1. по сравнению с предыдущим вариантом - селект на все данные и последющие апдейты по всем атрибутам, размер транзакции уже не поражает воображение, но на те же 100полей*500объектов - примерно метр, апдейты с where даже по ключу выполняются дольше replace вдобавок бередит мысль, что данные уже в базе и возможно их перетащить из одной таблицы в другую, не выныривая в код программы. и не по-индусски) заранее спасибо за идеи) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2010, 15:32 |
|
запрос: копирование и обновление таблиц
|
|||
---|---|---|---|
#18+
возможно, например, взять join из таблиц t1,t2,t2,t2...с различными условиями и собрать объект таблицы t1 и кусков самого себя и кусков разных объектов таблицы t2 собирать всё replace'ом. тут надо тестить, т.к., реплэйс на 100 полей явно будет тормознее апдейта полей на 10 ) но в запросе явно не будет данных, и 500 запросов превращаются в одын ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2010, 16:09 |
|
|
start [/forum/topic.php?fid=54&fpage=25&tid=2009293]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 125ms |
0 / 0 |