Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Симонов Денисlady, хотя это merge сделает не совсем то что нужно. Пиши execute block. В трёшке можно вот так выкрутится ... А вообще задача странная. не lady, а laby Такое дело - обновление КАЛДР ... в общую базу со своими правилами. На каждой таблице скрипт по изменениям, которые делают всякие гадости. Когда пару миллионов записей изменяю, начинаются всякие процессы по пересылке этих записей в тысячу других баз данных по всей стране ... Хотя большинство записей фактически не трогаются. Но и сами update or insert выполняются не так уж быстро - миллион записей около 2-х часов ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:11 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
laby, нормальные люди передают только изменения. А не всю табличку каждый раз. Тут репликация нужна. Хочешь сам пиши, хочешь купи готовый репликатор. В любом случае каждый раз перекидывать миллионы (хорошо не миллиарды) записей, причём большая часть из них не менялась это как раз и есть через жопу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:15 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovlabyЯ просто хочу что если уже такая запись есть то не дергать триггера и не обновлять даты изменений Запись идентифицируется ключом. А у тебя - какой-то хренью. И нет, нормальный блок будет не такой. Запись действительно идентифицируется ключом. Но на момент вставки или апдейта мы не знаем этого ключа, при импорте данных из другой базы данных мы и ищем нужную запись, но по нескольким полям. А какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:15 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, Нормальные люди изъясняются понятным языком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:17 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
laby, что не понятного. В мастер базе ведётся логирование изменений в триггерах. Потом по результатам этих изменений получается скрипт, который выполняется на подчинённых базах. Про репликаторы тебе Dimitry Sibiryakov больше расскажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:22 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Симонов Денисlaby, каждый раз перекидывать миллионы (хорошо не миллиарды) записей, причём большая часть из них не менялась это как раз и есть через жопу. Напомню название темы "Скрипт update or insert по изменению только " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:24 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
labyА какой? FOR SELECT с WHERE по трём полям, внутри проверка оставшихся четырёх и соответствующее действие. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:25 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Симонов Денисlaby, что не понятного. В мастер базе ведётся логирование изменений в триггерах. Потом по результатам этих изменений получается скрипт, который выполняется на подчинённых базах. Про репликаторы тебе Dimitry Sibiryakov больше расскажет. Кто в мастер-базе ведет это логгирование изменений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:25 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
laby, в принципе тебе наверное и первый merge который я написал подойдёт. Попробуй его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:26 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovlabyА какой? FOR SELECT с WHERE по трём полям, внутри проверка оставшихся четырёх и соответствующее действие. А чем if не угодил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:27 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
labyКто в мастер-базе ведет это логгирование изменений? сама мастер база конечно. С помощью триггеров повешенных на соответствующие таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:28 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисlabyКто в мастер-базе ведет это логгирование изменений? сама мастер база конечно. С помощью триггеров повешенных на соответствующие таблицы. А оно надо ФНС России ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:32 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Симонов Денис С помощью триггеров повешенных на соответствующие таблицы. там вообще dbf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:36 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
laby, а ну да. Если БД источник не твоя тогда пожалуй я не прав. Первый merge подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:40 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
labyА чем if не угодил? Твой - тем что стоит снаружи и имеет внутри exists. В результате этого твой код в 2-3 раза медленнее работает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 12:45 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Симонов Денисlaby, Первый merge подходит? Пробую ... не так быстро - у меня же там не fld1, fld2 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 13:59 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
labyСимонов Денисlaby, Первый merge подходит? Пробую ... не так быстро - у меня же там не fld1, fld2 ... Вроде работает, буду тогда пробывать через merge ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 14:26 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
labylabyпропущено... Пробую ... не так быстро - у меня же там не fld1, fld2 ... Вроде работает, буду тогда пробывать через merge Из IBExpert работает сформированный скрипт merge, а через tpFIBScript не работает, хотя update or insert работал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 16:36 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
laby, как имено не работает. Ошибку пишет или нет нужного результата выполнения. Если ошибку то какую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 17:06 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Симонов Денисlaby, как имено не работает. Ошибку пишет или нет нужного результата выполнения. Если ошибку то какую? Спасибо большое Денис! Ничо не пишет тупо ничего не делает. Ну я в цикле через TpFibQuery по одному выполняю, вроде выполняется ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 15:49 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Что-то мне подсказывает, что merge слишком новорочена, позволяет не только как у меня сливать с таблицей по одной записи, а может можно сформировать целую вторую таблицу, а затем слить одним оператором merge? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 18:15 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
laby, может и так. Можно например в одной транзакции залить сначала GTT простым insert без всяких проверок, а потом в ней же запустить merge который будет разруливать конфликты. Сам решай как лучше сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 18:22 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
Симонов Денисlaby, может и так. Можно например в одной транзакции залить сначала GTT простым insert без всяких проверок, а потом в ней же запустить merge который будет разруливать конфликты. Сам решай как лучше сделать. Дело в том что мне потом надо будет удалить все записи, которых в новой редакции нет. А чтобы их вычленить нужна наверное вторая таблица так как по dbf искать будет проблематично. А что такое GTT ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 18:27 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
labyА что такое GTT ? Временная таблица. Записи из которой удаляются автоматом или по коммиту тразакции или по дисконнекту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 18:30 |
|
||
|
Скрипт update or insert по изменению только
|
|||
|---|---|---|---|
|
#18+
laby, глобальная временная таблица http://www.firebirdsql.org/file/documentation/release_notes/html/rlsnotes217.html#rnfb210-globaltemp Данные в ней существуют только на время транзакции или коннекта. Делай эту таблицу такой же структуры как твой dbf. Просто переливаешь туда данные. А потом в какой нибудь хранимой процедуре они у тебя копируются в нормальную табличку с отсечением дубликатов, обновлением полей и удалением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 18:33 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38859521&tid=1563001]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 281ms |

| 0 / 0 |
