powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Скрипт update or insert по изменению только
25 сообщений из 102, страница 2 из 5
Скрипт update or insert по изменению только
    #38859508
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисlady,

хотя это merge сделает не совсем то что нужно. Пиши execute block.

В трёшке можно вот так выкрутится
...
А вообще задача странная.

не lady, а laby

Такое дело - обновление КАЛДР ... в общую базу со своими правилами. На каждой таблице скрипт по изменениям, которые делают всякие гадости. Когда пару миллионов записей изменяю, начинаются всякие процессы по пересылке этих записей в тысячу других баз данных по всей стране ... Хотя большинство записей фактически не трогаются. Но и сами update or insert выполняются не так уж быстро - миллион записей около 2-х часов ...
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859517
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laby,

нормальные люди передают только изменения. А не всю табличку каждый раз. Тут репликация нужна. Хочешь сам пиши, хочешь купи готовый репликатор. В любом случае каждый раз перекидывать миллионы (хорошо не миллиарды) записей, причём большая часть из них не менялась это как раз и есть через жопу.
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859518
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovlabyЯ просто хочу что если уже такая запись есть то не дергать триггера и не
обновлять даты изменений
Запись идентифицируется ключом. А у тебя - какой-то хренью.

И нет, нормальный блок будет не такой.


Запись действительно идентифицируется ключом.
Но на момент вставки или апдейта мы не знаем этого ключа, при импорте данных из другой базы данных мы и ищем нужную запись, но по нескольким полям.

А какой?
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859521
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Нормальные люди изъясняются понятным языком.
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859527
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laby,

что не понятного. В мастер базе ведётся логирование изменений в триггерах. Потом по результатам этих изменений получается скрипт, который выполняется на подчинённых базах. Про репликаторы тебе Dimitry Sibiryakov больше расскажет.
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859534
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисlaby,

каждый раз перекидывать миллионы (хорошо не миллиарды) записей, причём большая часть из них не менялась это как раз и есть через жопу.

Напомню название темы "Скрипт update or insert по изменению только "
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859535
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
labyА какой?
FOR SELECT с WHERE по трём полям, внутри проверка оставшихся четырёх и соответствующее
действие.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859536
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисlaby,

что не понятного. В мастер базе ведётся логирование изменений в триггерах. Потом по результатам этих изменений получается скрипт, который выполняется на подчинённых базах. Про репликаторы тебе Dimitry Sibiryakov больше расскажет.

Кто в мастер-базе ведет это логгирование изменений?
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859544
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laby,

в принципе тебе наверное и первый merge который я написал подойдёт. Попробуй его.
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859549
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovlabyА какой?
FOR SELECT с WHERE по трём полям, внутри проверка оставшихся четырёх и соответствующее
действие.


А чем if не угодил?
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859553
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
labyКто в мастер-базе ведет это логгирование изменений?

сама мастер база конечно. С помощью триггеров повешенных на соответствующие таблицы.
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859566
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисlabyКто в мастер-базе ведет это логгирование изменений?

сама мастер база конечно. С помощью триггеров повешенных на соответствующие таблицы.

А оно надо ФНС России
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859573
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис С помощью триггеров повешенных на соответствующие таблицы.
там вообще dbf
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859579
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laby,

а ну да. Если БД источник не твоя тогда пожалуй я не прав.

Первый merge подходит?
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859588
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
labyА чем if не угодил?
Твой - тем что стоит снаружи и имеет внутри exists. В результате этого твой код в 2-3 раза
медленнее работает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859689
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисlaby,
Первый merge подходит?

Пробую ... не так быстро - у меня же там не fld1, fld2 ...
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859725
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
labyСимонов Денисlaby,
Первый merge подходит?

Пробую ... не так быстро - у меня же там не fld1, fld2 ...

Вроде работает, буду тогда пробывать через merge
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859877
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
labylabyпропущено...


Пробую ... не так быстро - у меня же там не fld1, fld2 ...

Вроде работает, буду тогда пробывать через merge

Из IBExpert работает сформированный скрипт merge, а через tpFIBScript не работает, хотя update or insert работал
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38859931
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laby,

как имено не работает. Ошибку пишет или нет нужного результата выполнения. Если ошибку то какую?
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38860822
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисlaby,

как имено не работает. Ошибку пишет или нет нужного результата выполнения. Если ошибку то какую?

Спасибо большое Денис!
Ничо не пишет тупо ничего не делает. Ну я в цикле через TpFibQuery по одному выполняю, вроде выполняется ...
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38861006
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то мне подсказывает, что merge слишком новорочена, позволяет не только как у меня сливать с таблицей по одной записи, а может можно сформировать целую вторую таблицу, а затем слить одним оператором merge?
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38861013
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laby,

может и так.

Можно например в одной транзакции залить сначала GTT простым insert без всяких проверок, а потом в ней же запустить merge который будет разруливать конфликты. Сам решай как лучше сделать.
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38861019
laby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисlaby,

может и так.

Можно например в одной транзакции залить сначала GTT простым insert без всяких проверок, а потом в ней же запустить merge который будет разруливать конфликты. Сам решай как лучше сделать.

Дело в том что мне потом надо будет удалить все записи, которых в новой редакции нет. А чтобы их вычленить нужна наверное вторая таблица так как по dbf искать будет проблематично.

А что такое GTT ?
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38861025
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
labyА что такое GTT ?

Временная таблица. Записи из которой удаляются автоматом или по коммиту тразакции или по дисконнекту.
...
Рейтинг: 0 / 0
Скрипт update or insert по изменению только
    #38861028
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laby,

глобальная временная таблица http://www.firebirdsql.org/file/documentation/release_notes/html/rlsnotes217.html#rnfb210-globaltemp Данные в ней существуют только на время транзакции или коннекта. Делай эту таблицу такой же структуры как твой dbf. Просто переливаешь туда данные. А потом в какой нибудь хранимой процедуре они у тебя копируются в нормальную табличку с отсечением дубликатов, обновлением полей и удалением.
...
Рейтинг: 0 / 0
25 сообщений из 102, страница 2 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Скрипт update or insert по изменению только
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]