мета-данные страницы
  •  

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
convert_db_table_tu_replication [19.06.2020 17:10]
sergeykrasn
convert_db_table_tu_replication [22.11.2023 16:13] (текущий)
OLDest
Строка 1: Строка 1:
 ====== Преобразование существующей таблицы в репликационную ====== ====== Преобразование существующей таблицы в репликационную ======
 +
 +Ключевые слова:
 +Как добавить репликацию таблице/​сделать таблицу репликационной/​репликационная таблица
  
 Выполняется в программе DBmeta.exe Выполняется в программе DBmeta.exe
Строка 7: Строка 10:
 {{:​Preobrazovaniye_sushchestvuyushchey_tablitsy_v_replikatsionnuyu_docx_2020-06-19_17-01-24_img1.png?​464x359}} {{:​Preobrazovaniye_sushchestvuyushchey_tablitsy_v_replikatsionnuyu_docx_2020-06-19_17-01-24_img1.png?​464x359}}
  
-2) Пункт меню **Операции/​Commit changes** . Скопировать скрипт из открывшегося окна ​и вставить его в файл со скриптом. +2) Пункт меню **Операции/​Commit changes** . Скопировать скрипт из открывшегося окна.
- +
-{{:​Preobrazovaniye_sushchestvuyushchey_tablitsy_v_replikatsionnuyu_docx_2020-06-19_17-01-24_img2.png?​455x299}}+
  
 +{{:​Preobrazovaniye_sushchestvuyushchey_tablitsy_v_replikatsionnuyu_docx_2020-06-19_17-01-24_img2.png?​455x299}}\\
 +и вставить его в файл со скриптом
  
 3) Пунк меню **Операции / Replication struct / Создать/​удалить ** для выбранной таблице . Скопировать скрипт из открывшегося окна и добавить его в файл со скриптом,​ созданным в п. 2. 3) Пунк меню **Операции / Replication struct / Создать/​удалить ** для выбранной таблице . Скопировать скрипт из открывшегося окна и добавить его в файл со скриптом,​ созданным в п. 2.
Строка 20: Строка 23:
 Первая часть скрипта:​ для всех БД Первая часть скрипта:​ для всех БД
  
 +<code sql>
 GRANT ALL ON LOCKER_BAGS TO REPL_ROLE; GRANT ALL ON LOCKER_BAGS TO REPL_ROLE;
 execute procedure ADD_MST_RELATION('​LOCKER_BAGS',​ 2); execute procedure ADD_MST_RELATION('​LOCKER_BAGS',​ 2);
Строка 38: Строка 41:
 DEFAULT 0 DEFAULT 0
 NOT NULL ; NOT NULL ;
 +</​code>​
  
-Вторая часть скрипта:​ для репликационной БД+Вторая часть скрипта:​ для репликационной БД (в скриптах,​ галочка:​ "​для баз с включенной репликацией"​)
  
-SET TERM ^ ; 
  
-CREATE TRIGGER ​LOCKER_BAGS_AD ​FOR LOCKER_BAGS +<code sql> 
-ACTIVE AFTER DELETE POSITION 10+ 
 +SET TERM ^ ;  
 +CREATE TRIGGER ​LOCKER_BAGDROPPERS_AD ​FOR LOCKER_BAGDROPPERS ​ 
 +ACTIVE AFTER DELETE POSITION 10 
 AS AS
 DECLARE VARIABLE SEQ_ID D_INT64; DECLARE VARIABLE SEQ_ID D_INT64;
 DECLARE VARIABLE IS_CENT D_INT64; DECLARE VARIABLE IS_CENT D_INT64;
-begin +begin  
-if (current_role<>'​DEL_ROLE'​) then +  if (current_role<>'​DEL_ROLE'​) then 
-begin +  begin 
-IS_CENT = GEN_ID(GEN_IS_CENTR_DB,​ 0); +    IS_CENT = GEN_ID(GEN_IS_CENTR_DB,​ 0);
-if ((:​IS_CENT=1) or (current_role<>'​REPL_ROLE'​)) then +
-select seq_id from MST_META_CHANGES_I( '​LOCKER_BAGS'​ , old.ID, 3) +
-into :SEQ_ID; +
-end +
-end ^+
  
 +    if ((:​IS_CENT=1) or (current_role<>'​REPL_ROLE'​)) then
 +      select seq_id from MST_META_CHANGES_I( '​LOCKER_BAGDROPPERS'​ , old.ID, 3)
 +      into :SEQ_ID;
 +  end
 +end ^ 
 SET TERM ; ^ SET TERM ; ^
  
-SET TERM ^ ; +SET TERM ^ ;  
- +CREATE TRIGGER ​LOCKER_BAGDROPPERS_AU ​FOR LOCKER_BAGDROPPERS ​ 
-CREATE TRIGGER ​LOCKER_BAGS_AU ​FOR LOCKER_BAGS +ACTIVE AFTER UPDATE POSITION 10 
-ACTIVE AFTER UPDATE POSITION 10+
 AS AS
 DECLARE VARIABLE SEQ_ID D_INT64; DECLARE VARIABLE SEQ_ID D_INT64;
 DECLARE VARIABLE IS_CENT D_INT64; DECLARE VARIABLE IS_CENT D_INT64;
-begin +begin  
-if (current_role<>'​DEL_ROLE'​) then +  if (current_role<>'​DEL_ROLE'​) then 
-begin +  begin 
-IS_CENT = GEN_ID(GEN_IS_CENTR_DB,​ 0); +    IS_CENT = GEN_ID(GEN_IS_CENTR_DB,​ 0);
-if ((:​IS_CENT=1) or (current_role<>'​REPL_ROLE'​)) then +
-select seq_id from MST_META_CHANGES_I( '​LOCKER_BAGS'​ , new.ID, 2) into :SEQ_ID; +
-end +
- +
-end ^+
  
 +    if ((:​IS_CENT=1) or (current_role<>'​REPL_ROLE'​)) then
 +      select seq_id from MST_META_CHANGES_I( '​LOCKER_BAGDROPPERS'​ , new.ID, 2) into :​SEQ_ID; ​
 +  end
 +end ^ 
 SET TERM ; ^ SET TERM ; ^
  
-SET TERM ^ ; +SET TERM ^ ;  
- +CREATE TRIGGER ​LOCKER_BAGDROPPERS_AI ​FOR LOCKER_BAGDROPPERS ​ 
-CREATE TRIGGER ​LOCKER_BAGS_AI ​FOR LOCKER_BAGS +ACTIVE AFTER INSERT POSITION 10 
-ACTIVE AFTER INSERT POSITION 10+
 AS AS
 DECLARE VARIABLE SEQ_ID D_INT64; DECLARE VARIABLE SEQ_ID D_INT64;
 DECLARE VARIABLE IS_CENT D_INT64; DECLARE VARIABLE IS_CENT D_INT64;
-begin +begin  
-if (current_role<>'​DEL_ROLE'​) then +  if (current_role<>'​DEL_ROLE'​) then 
-begin +  begin 
-IS_CENT = GEN_ID(GEN_IS_CENTR_DB,​ 0); +    IS_CENT = GEN_ID(GEN_IS_CENTR_DB,​ 0);
-if ((:​IS_CENT=1) or (current_role<>'​REPL_ROLE'​)) then +
-select seq_id from MST_META_CHANGES_I( '​LOCKER_BAGS'​ , new.ID, 1) into :SEQ_ID; +
-end +
- +
-end ^+
  
 +    if ((:​IS_CENT=1) or (current_role<>'​REPL_ROLE'​)) then
 +      select seq_id from MST_META_CHANGES_I( '​LOCKER_BAGDROPPERS'​ , new.ID, 1) into :​SEQ_ID; ​
 +  end
 +end ^ 
 SET TERM ; ^ SET TERM ; ^
  
 SET TERM ^ ; SET TERM ^ ;
- +CREATE TRIGGER ​LOCKER_BAGDROPPERS_AA ​FOR LOCKER_BAGDROPPERS
-CREATE TRIGGER ​LOCKER_BAGS_AA ​FOR LOCKER_BAGS+
 ACTIVE BEFORE UPDATE POSITION 15 ACTIVE BEFORE UPDATE POSITION 15
-AS+AS 
 begin begin
-if (current_role<>'​REPL_ROLE'​) then +  ​if (current_role<>'​REPL_ROLE'​) then 
-begin +  begin 
-new.LAST_DEP_ID=0;​ +    new.LAST_DEP_ID=0;​ 
-end +  end    
 end^ end^
 +SET TERM ; ^
  
-SET TERM ; ^+</​code>​