windows:notas
This is an old revision of the document!
----- ----- ----- creation of a higher struct value to hold ----- the channels option ----- ----- ----- create database hg4_big character set utf8 collate utf8_general_ci; grant select, insert, update, delete, alter, drop, create, index, execute on hg4_big.* to hg4; --- --- execute "08.0 normalized-model.sql" --- --- --- execute '11.0 unified-mk-ident-function.sql' --- --- --- execute '12.0 create-results-table.sql' --- ---- ---- ---- STEP 1: Import hg_version ---- ---- ---- drop table if exists pre_hg_version; create table pre_hg_version ( id_version bigint auto_increment primary key not null, major int, minor int, desc_version tinytext, created timestamp, former_id bigint, former_db varchar(12) ); --- import of version information of all databases insert into pre_hg_version (major, minor, desc_version, created, former_id, former_db) select major, minor, desc_version, created, id_version, 'hg4' from hg4.hg_version; insert into pre_hg_version (major, minor, desc_version, created, former_id, former_db) select major, minor, desc_version, created, id_version, 'hg4_vida' from hg4_vida.hg_version; insert into pre_hg_version (major, minor, desc_version, created, former_id, former_db) select major, minor, desc_version, created, id_version, 'hg4_canales' from hg4_canales.hg_version; insert into pre_hg_version (major, minor, desc_version, created, former_id, former_db) select major, minor, desc_version, created, id_version, 'hg4_pt' from hg4_pt.hg_version; ---- ---- ---- STEP 2 : Create table hg_company ---- ---- drop table if exists pre_hg_company; create table pre_hg_company ( id_company bigint auto_increment primary key not null, code varchar(20), name tinytext ); insert into pre_hg_company (name, code ) values ( 'Mapfre Iberia', 'mapfre.es' ); insert into pre_hg_company (name, code) values ( 'Mapfre Portugal', 'mapfre.pt' ); ---- ---- ---- STEP 3 : Import hg_period ---- Later we will shorten the list of imported periods ---- ---- drop table if exists pre_hg_period; -- id_period: consecutive integer that makes the unique identifier of this table -- period_number: the number of this period: this should be consecutive -- in the same company create table pre_hg_period ( id_period bigint auto_increment primary key not null, period_number int, start_date tinytext, title text, id_company bigint, former_id bigint, former_db varchar(12) ); -- import of period information insert into pre_hg_period (period_number, start_date, title, id_company, former_id, former_db ) select id_period, start_date, title, (select id_company from pre_hg_company where code = 'mapfre.es') as id_company, id_period, 'hg4' from hg4.hg_period; insert into pre_hg_period (period_number, start_date, title, id_company, former_id, former_db ) select id_period, start_date, title, (select id_company from pre_hg_company where code = 'mapfre.es') as id_company, id_period, 'hg4_canales' from hg4_canales.hg_period; insert into pre_hg_period (period_number, start_date, title, id_company, former_id, former_db ) select id_period, start_date, title, (select id_company from pre_hg_company where code = 'mapfre.es') as id_company, id_period, 'hg4_vida' from hg4_vida.hg_period; insert into pre_hg_period (period_number, start_date, title, id_company, former_id, former_db ) select id_period, start_date, title, (select id_company from pre_hg_company where code = 'mapfre.pt') as id_company, id_period, 'hg4_pt' from hg4_pt.hg_period; ---- ---- ---- STEP 4.1 : Creation of table hg_channel ---- ---- drop table if exists pre_hg_channel; create table pre_hg_channel ( id_channel bigint auto_increment primary key not null, code varchar(20), description varchar(255) ); insert into pre_hg_channel (code, description) values ('no_channel', 'no_channel'); insert into pre_hg_channel (code, description) values ('agencial', 'Red Agencial'); insert into pre_hg_channel (code, description) values ('vida', 'Red Vida'); insert into pre_hg_channel (code, description) values ('brokers', 'Brokers'); insert into pre_hg_channel (code, description) values ('pt', 'Red Portugal'); ---- ---- ---- STEP 5 : Import of hg_struct ---- It's important to set correctly the value of ---- id_struct_parent. ---- drop table if exists pre_hg_struct; create table pre_hg_struct ( id_struct bigint auto_increment primary key not null, what_is varchar(10), -- "global","dgt","subcentral","oficina" code varchar(20), description varchar(255), id_struct_parent bigint, id_period bigint default 0, id_company bigint default 0, id_channel bigint default 0, former_id bigint, former_id_parent bigint, former_db varchar(12) ); insert into pre_hg_struct (what_is, code, description, id_period, id_company, former_id, former_id_parent, former_db) select what_is, code, description, (select id_period from pre_hg_period where former_id = old_struct.id_period and former_db = 'hg4'), (select id_company from pre_hg_company where code = 'mapfre.es') as id_company, id_struct, id_struct_parent, 'hg4' from hg4.hg_struct old_struct; insert into pre_hg_struct (what_is, code, description, id_period, id_company, former_id, former_id_parent, former_db) select what_is, code, description, (select id_period from pre_hg_period where former_id = old_struct.id_period and former_db = 'hg4_canales'), (select id_company from pre_hg_company where code = 'mapfre.es') as id_company, id_struct, id_struct_parent, 'hg4_canales' from hg4_canales.hg_struct old_struct; insert into pre_hg_struct (what_is, code, description, id_period, id_company, former_id, former_id_parent, former_db) select what_is, code, description, (select id_period from pre_hg_period where former_id = old_struct.id_period and former_db = 'hg4_vida'), (select id_company from pre_hg_company where code = 'mapfre.es') as id_company, id_struct, id_struct_parent, 'hg4_vida' from hg4_vida.hg_struct old_struct; insert into pre_hg_struct (what_is, code, description, id_period, id_company, former_id, former_id_parent, former_db) select what_is, code, description, (select id_period from pre_hg_period where former_id = old_struct.id_period and former_db = 'hg4_pt'), (select id_company from pre_hg_company where code = 'mapfre.pt') as id_company, id_struct, id_struct_parent, 'hg4_pt' from hg4_pt.hg_struct old_struct; --- --- --- update new id_struct_parent --- --- drop procedure update_parent; update pre_hg_struct set id_struct_parent = null; delimiter $$ create procedure update_parent() begin declare v_finished integer default 0; declare v_new_parent bigint; declare v_id_struct bigint; declare v_former_id bigint; declare v_former_id_parent bigint; declare v_former_database varchar(12); declare c_struct cursor for select id_struct, former_id, former_id_parent, former_db from pre_hg_struct; declare continue handler for not found set v_finished = 1; open c_struct; loop_struct: loop fetch c_struct into v_id_struct, v_former_id, v_former_id_parent, v_former_database; if v_finished = 1 then leave loop_struct; end if; set v_new_parent := (select id_struct from pre_hg_struct where former_id = v_former_id_parent and former_db = v_former_database); update pre_hg_struct set id_struct_parent = v_new_parent where id_struct = v_id_struct; end loop loop_struct; close c_struct; end $$ delimiter ; call update_parent(); drop procedure update_parent; --- --- change 'global' for 'canal' --- update pre_hg_struct set what_is = 'canal' where what_is = 'global'; -- identify the different channels update pre_hg_struct set code = (select code from pre_hg_channel where code = 'agencial'), description = (select description from pre_hg_channel where code = 'agencial') where what_is = 'canal' and former_db = 'hg4'; update pre_hg_struct set code = (select code from pre_hg_channel where code = 'vida'), description = (select description from pre_hg_channel where code = 'vida') where what_is = 'canal' and former_db = 'hg4_vida'; update pre_hg_struct set code = (select code from pre_hg_channel where code = 'brokers') , description = (select description from pre_hg_channel where code = 'brokers') where what_is = 'canal' and former_db = 'hg4_canales'; update pre_hg_struct set code = (select code from pre_hg_channel where code = 'pt'), description = (select description from pre_hg_channel where code = 'pt') where what_is = 'canal' and former_db = 'hg4_pt'; -- set the channel in hg_struct based in the former_db -- emtpy channel update pre_hg_struct set id_channel = (select id_channel from pre_hg_channel where code = 'no_channel') where former_db is null; update pre_hg_struct set id_channel = (select id_channel from pre_hg_channel where code = 'agencial') where former_db = 'hg4'; update pre_hg_struct set id_channel = (select id_channel from pre_hg_channel where code = 'vida') where former_db = 'hg4_vida'; update pre_hg_struct set id_channel = (select id_channel from pre_hg_channel where code = 'brokers') where former_db = 'hg4_canales'; update pre_hg_struct set id_channel = (select id_channel from pre_hg_channel where code = 'pt') where former_db = 'hg4_pt'; --- --- verifications of the table pre_hg_struct --- select * from pre_hg_struct where id_struct_parent is null; -- expected result: only the "canal" results ---- ---- ---- STEP 6 : import of table hg_indicator ---- ---- drop table if exists pre_hg_indicator; create table pre_hg_indicator ( id_indic bigint auto_increment primary key not null, indicator_key tinytext, title tinytext, long_desc text, weight int, percentage decimal(20,10), use_for_critic int default 1, id_period bigint default 0, id_struct_channel bigint not null, former_id bigint, former_db varchar(12) ); insert into pre_hg_indicator (indicator_key, title, long_desc, weight, percentage, use_for_critic, id_period, id_struct_channel, former_id, former_db ) select indicator_key, title, long_desc, weight, percentage, use_for_critic, (select id_period from pre_hg_period where period_number = old_indic.id_period and former_db = 'hg4'), (select id_struct from pre_hg_struct where id_period = (select id_period from pre_hg_period where period_number = old_indic.id_period and former_db = 'hg4') and what_is = 'canal'), id_indic, 'hg4' from hg4.hg_indicator old_indic; insert into pre_hg_indicator (indicator_key, title, long_desc, weight, percentage, use_for_critic, id_period, id_struct_channel, former_id, former_db ) select indicator_key, title, long_desc, weight, percentage, use_for_critic, (select id_period from pre_hg_period where period_number = old_indic.id_period and former_db = 'hg4_canales'), (select id_struct from pre_hg_struct where id_period = (select id_period from pre_hg_period where period_number = old_indic.id_period and former_db = 'hg4_canales') and what_is = 'canal'), id_indic, 'hg4_canales' from hg4_canales.hg_indicator old_indic; insert into pre_hg_indicator (indicator_key, title, long_desc, weight, percentage, use_for_critic, id_period, id_struct_channel, former_id, former_db ) select indicator_key, title, long_desc, weight, percentage, use_for_critic, (select id_period from pre_hg_period where period_number = old_indic.id_period and former_db = 'hg4_vida'), (select id_struct from pre_hg_struct where id_period = (select id_period from pre_hg_period where period_number = old_indic.id_period and former_db = 'hg4_vida') and what_is = 'canal'), id_indic, 'hg4_vida' from hg4_vida.hg_indicator old_indic; insert into pre_hg_indicator (indicator_key, title, long_desc, weight, percentage, use_for_critic, id_period, id_struct_channel, former_id, former_db ) select indicator_key, title, long_desc, weight, percentage, use_for_critic, (select id_period from pre_hg_period where period_number = old_indic.id_period and former_db = 'hg4_pt'), (select id_struct from pre_hg_struct where id_period = (select id_period from pre_hg_period where period_number = old_indic.id_period and former_db = 'hg4_pt') and what_is = 'canal'), id_indic, 'hg4_pt' from hg4_pt.hg_indicator old_indic; ---- ---- ---- STEP 7: Reorganization of periods ---- ---- Adjustements and reorganizations of periods: ---- It canot be done before this point because ---- we need the reference to the old period_id ---- up to this point ---- -- the periods for the channel hg_vida must be changed -- to equivalent periods for the channel "hg4" (agent network) -- -- Period 1 of vida goes to period 3 of red agencial -- update pre_hg_struct set id_period = (select id_period from pre_hg_period where former_db = 'hg4' and period_number = 3) where id_period = (select id_period from pre_hg_period where former_db = 'hg4_vida' and period_number = 1); update pre_hg_indicator set id_period = (select id_period from pre_hg_period where former_db = 'hg4' and period_number = 3) where id_period = (select id_period from pre_hg_period where former_db = 'hg4_vida' and period_number = 1); -- -- Period 2 of vida goes to period 4 of red agencial -- update pre_hg_struct set id_period = (select id_period from pre_hg_period where former_db = 'hg4' and period_number = 4) where id_period = (select id_period from pre_hg_period where former_db = 'hg4_vida' and period_number = 2); update pre_hg_indicator set id_period = (select id_period from pre_hg_period where former_db = 'hg4' and period_number = 4) where id_period = (select id_period from pre_hg_period where former_db = 'hg4_vida' and period_number = 2); -- -- Period 1 of canales goes to period 4 of red agencial -- update pre_hg_struct set id_period = (select id_period from pre_hg_period where former_db = 'hg4' and period_number = 4) where id_period = (select id_period from pre_hg_period where former_db = 'hg4_canales' and period_number = 1); update pre_hg_indicator set id_period = (select id_period from pre_hg_period where former_db = 'hg4' and period_number = 4) where id_period = (select id_period from pre_hg_period where former_db = 'hg4_canales' and period_number = 1); ---- ---- ---- STEP 8: Create the "compania" struct and link it ---- ---- change the global for the name of the ---- channel and create the company high structure ---- ---- drop procedure create_global_struct; delimiter $$ create procedure create_global_struct() begin declare v_finished integer default 0; declare v_id_period bigint; declare v_period_number int(11); declare v_start_date tinytext; declare v_id_company bigint; declare v_last_id bigint; declare c_period_by_company cursor for select id_period, period_number, start_date, id_company from pre_hg_period where former_db = 'hg4' or former_db = 'hg4_pt'; declare continue handler for not found set v_finished = 1; open c_period_by_company; loop_struct: loop fetch c_period_by_company into v_id_period, v_period_number, v_start_date, v_id_company; if v_finished = 1 then leave loop_struct; end if; insert into pre_hg_struct (what_is, code, description, id_struct_parent, id_period, id_company, id_channel) values ( 'compania', (select code from pre_hg_company where id_company = v_id_company), (select name from pre_hg_company where id_company = v_id_company), null, v_id_period, v_id_company, (select id_channel from hg_channel where code = 'no_channel') ); -- get the latest id of the insert set v_last_id := last_insert_id(); -- map the id_struct parent with its parent companies update pre_hg_struct set id_struct_parent = v_last_id where what_is = 'canal' and id_period = v_id_period and id_company = v_id_company; end loop loop_struct; close c_period_by_company; end $$ delimiter ; call create_global_struct(); drop procedure create_global_struct; --- --- verifications --- select * from pre_hg_struct me, pre_hg_struct parent where me.former_db = parent.former_db and me.former_id_parent = parent.former_id and me.id_struct_parent <> parent.id_struct; -- expected result: empty set ---- ---- ---- STEP 9: Import of table hg_valoration ---- ---- drop table if exists pre_hg_valoration; create table pre_hg_valoration ( id_valoration bigint auto_increment primary key not null, id_indic bigint, indic_value double, id_struct bigint, former_id bigint, former_db varchar(12) ); insert into pre_hg_valoration (id_indic, indic_value, id_struct, former_id, former_db ) select (select id_indic from pre_hg_indicator where former_id = val.id_indic and former_db = 'hg4') id_indic, indic_value, (select id_struct from pre_hg_struct where former_id = val.id_struct and former_db = 'hg4') id_struct, id_indic, 'hg4' from hg4.hg_valoration val; insert into pre_hg_valoration (id_indic, indic_value, id_struct, former_id, former_db ) select (select id_indic from pre_hg_indicator where former_id = val.id_indic and former_db = 'hg4_canales') id_indic, indic_value, (select id_struct from pre_hg_struct where former_id = val.id_struct and former_db = 'hg4_canales') id_struct, id_indic, 'hg4_canales' from hg4_canales.hg_valoration val; insert into pre_hg_valoration (id_indic, indic_value, id_struct, former_id, former_db ) select (select id_indic from pre_hg_indicator where former_id = val.id_indic and former_db = 'hg4_vida') id_indic, indic_value, (select id_struct from pre_hg_struct where former_id = val.id_struct and former_db = 'hg4_vida') id_struct, id_indic, 'hg4_vida' from hg4_vida.hg_valoration val; insert into pre_hg_valoration (id_indic, indic_value, id_struct, former_id, former_db ) select (select id_indic from pre_hg_indicator where former_id = val.id_indic and former_db = 'hg4_pt') id_indic, indic_value, (select id_struct from pre_hg_struct where former_id = val.id_struct and former_db = 'hg4_pt') id_struct, id_indic, 'hg4_pt' from hg4_pt.hg_valoration val; ---- ---- ---- STEP 10: Import of table pre_hg_detail ---- ---- drop table if exists pre_hg_detail; create table pre_hg_detail ( id_detail bigint auto_increment primary key not null, id_struct bigint, id_indic bigint, clave_agt varchar(20), field_desc tinytext, field_value tinytext, field_hash varchar(32), former_id bigint, former_db varchar(12) ); insert into pre_hg_detail (id_struct, id_indic, clave_agt, field_desc, field_value, field_hash, former_id, former_db) select (select id_struct from pre_hg_struct where former_id = det.id_struct and former_db = 'hg4') id_struct, (select id_indic from pre_hg_indicator where former_id = det.id_indic and former_db = 'hg4') id_indic, clave_agt, field_desc, field_value, field_hash, id_struct, 'hg4' from hg4.hg_detail det; insert into pre_hg_detail (id_struct, id_indic, clave_agt, field_desc, field_value, field_hash, former_id, former_db) select (select id_struct from pre_hg_struct where former_id = det.id_struct and former_db = 'hg4_canales') id_struct, (select id_indic from pre_hg_indicator where former_id = det.id_indic and former_db = 'hg4_canales') id_indic, clave_agt, field_desc, field_value, field_hash, id_struct, 'hg4_canales' from hg4_canales.hg_detail det; insert into pre_hg_detail (id_struct, id_indic, clave_agt, field_desc, field_value, field_hash, former_id, former_db) select (select id_struct from pre_hg_struct where former_id = det.id_struct and former_db = 'hg4_vida') id_struct, (select id_indic from pre_hg_indicator where former_id = det.id_indic and former_db = 'hg4_vida') id_indic, clave_agt, field_desc, field_value, field_hash, id_struct, 'hg4_vida' from hg4_vida.hg_detail det; insert into pre_hg_detail (id_struct, id_indic, clave_agt, field_desc, field_value, field_hash, former_id, former_db) select (select id_struct from pre_hg_struct where former_id = det.id_struct and former_db = 'hg4_pt') id_struct, (select id_indic from pre_hg_indicator where former_id = det.id_indic and former_db = 'hg4_pt') id_indic, clave_agt, field_desc, field_value, field_hash, id_struct, 'hg4_pt' from hg4_pt.hg_detail det; ----- ----- ----- STEP 11: Tables for aggregated results ----- ----- drop table if exists pre_hg_val_high; create table pre_hg_val_high (id_val_high bigint auto_increment primary key not null, id_major bigint, what_is_major varchar(10), id_minor bigint, what_is_minor varchar(10), id_indic bigint, indic_value double, avg_value double, std_value double, is_high int default 0, is_critic int default 0, is_medium int default 0, is_low int default 0, former_id bigint, former_db varchar(12)); insert into pre_hg_val_high (id_major, what_is_major, id_minor, what_is_minor, id_indic, indic_value, avg_value, std_value, is_high, is_critic, is_medium, is_low, former_id, former_db) select (select id_struct from pre_hg_struct where former_id = val.id_major and former_db = 'hg4') id_major, (select what_is from pre_hg_struct where former_id = val.id_major and former_db = 'hg4') what_is_major, (select id_struct from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4') id_minor, (select what_is from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4') what_is_minor, (select id_indic from pre_hg_indicator where former_id = val.id_indic and former_db = 'hg4') indic_value, indic_value, avg_value, std_value, is_high, is_critic, is_medium, is_low, id_val_high, 'hg4' from hg4.hg_val_high val; insert into pre_hg_val_high (id_major, what_is_major, id_minor, what_is_minor, id_indic, indic_value, avg_value, std_value, is_high, is_critic, is_medium, is_low, former_id, former_db) select (select id_struct from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_canales') id_major, (select what_is from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_canales') what_is_major, (select id_struct from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_canales') id_minor, (select what_is from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_canales') what_is_minor, (select id_indic from pre_hg_indicator where former_id = val.id_indic and former_db = 'hg4_canales') indic_value, indic_value, avg_value, std_value, is_high, is_critic, is_medium, is_low, id_val_high, 'hg4_canales' from hg4_canales.hg_val_high val; insert into pre_hg_val_high (id_major, what_is_major, id_minor, what_is_minor, id_indic, indic_value, avg_value, std_value, is_high, is_critic, is_medium, is_low, former_id, former_db) select (select id_struct from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_vida') id_major, (select what_is from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_vida') what_is_major, (select id_struct from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_vida') id_minor, (select what_is from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_vida') what_is_minor, (select id_indic from pre_hg_indicator where former_id = val.id_indic and former_db = 'hg4_vida') indic_value, indic_value, avg_value, std_value, is_high, is_critic, is_medium, is_low, id_val_high, 'hg4_vida' from hg4_vida.hg_val_high val; insert into pre_hg_val_high (id_major, what_is_major, id_minor, what_is_minor, id_indic, indic_value, avg_value, std_value, is_high, is_critic, is_medium, is_low, former_id, former_db) select (select id_struct from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_pt') id_major, (select what_is from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_pt') what_is_major, (select id_struct from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_pt') id_minor, (select what_is from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_pt') what_is_minor, (select id_indic from pre_hg_indicator where former_id = val.id_indic and former_db = 'hg4_pt') indic_value, indic_value, avg_value, std_value, is_high, is_critic, is_medium, is_low, id_val_high, 'hg4_pt' from hg4_pt.hg_val_high val; ---- ---- ---- STEP 12: import of table hg_val_struct ---- ---- drop table if exists pre_hg_val_struct; create table pre_hg_val_struct (id_val_struct bigint auto_increment primary key not null, id_major bigint, what_is_major varchar(10), id_minor bigint, what_is_minor varchar(10), struct_value double, avg_value double, std_value double, num_high int, num_critic int, sem_value double, former_id bigint, former_db varchar(12) ); insert into pre_hg_val_struct (id_major, what_is_major, id_minor, what_is_minor, struct_value, avg_value, std_value, num_high, num_critic, sem_value, former_id, former_db ) select (select id_struct from pre_hg_struct where former_id = val.id_major and former_db = 'hg4') id_major, (select what_is from pre_hg_struct where former_id = val.id_major and former_db = 'hg4') what_is_major, (select id_struct from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4') id_minor, (select what_is from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4') what_is_minor, struct_value, avg_value, std_value, num_high, num_critic, sem_value, id_val_struct, 'hg4' from hg4.hg_val_struct val ; insert into pre_hg_val_struct (id_major, what_is_major, id_minor, what_is_minor, struct_value, avg_value, std_value, num_high, num_critic, sem_value, former_id, former_db ) select (select id_struct from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_canales') id_major, (select what_is from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_canales') what_is_major, (select id_struct from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_canales') id_minor, (select what_is from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_canales') what_is_minor, struct_value, avg_value, std_value, num_high, num_critic, sem_value, id_val_struct, 'hg4_canales' from hg4_canales.hg_val_struct val ; insert into pre_hg_val_struct (id_major, what_is_major, id_minor, what_is_minor, struct_value, avg_value, std_value, num_high, num_critic, sem_value, former_id, former_db ) select (select id_struct from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_vida') id_major, (select what_is from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_vida') what_is_major, (select id_struct from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_vida') id_minor, (select what_is from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_vida') what_is_minor, struct_value, avg_value, std_value, num_high, num_critic, sem_value, id_val_struct, 'hg4_vida' from hg4_vida.hg_val_struct val ; insert into pre_hg_val_struct (id_major, what_is_major, id_minor, what_is_minor, struct_value, avg_value, std_value, num_high, num_critic, sem_value, former_id, former_db ) select (select id_struct from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_pt') id_major, (select what_is from pre_hg_struct where former_id = val.id_major and former_db = 'hg4_pt') what_is_major, (select id_struct from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_pt') id_minor, (select what_is from pre_hg_struct where former_id = val.id_minor and former_db = 'hg4_pt') what_is_minor, struct_value, avg_value, std_value, num_high, num_critic, sem_value, id_val_struct, 'hg4_pt' from hg4_pt.hg_val_struct val ; ---- ---- ---- STEP 13: delete periods that we won't use ---- any longer ---- delete from pre_hg_period where former_db = 'hg4_canales' or former_db = 'hg4_vida'; -- check that there isn't periods incorrectly set in the -- other tables select * from pre_hg_indicator where id_period not in (select id_period from pre_hg_period) limit 3; -- expected result: empty set select * from pre_hg_struct where id_period not in (select id_period from pre_hg_period) limit 3; -- expected result: empty set ---- ---- ---- STEP 14: cleanup ---- ---- -- NOTE 01/04/2014: BY NOW, EVERY DELETION OF COLUMNS -- "FORMER_DB" AND "FORMER_ID" WILL BE AVOIDED -- remove the "former_id" and "former_db" fields, -- rename the 'pre_' tables drop table if exists hg_company; -- alter table pre_hg_company drop column former_db; rename table pre_hg_company to hg_company; drop table if exists hg_detail; -- alter table pre_hg_detail drop column former_id; -- alter table pre_hg_detail drop column former_db; rename table pre_hg_detail to hg_detail; drop table if exists hg_indicator; -- alter table pre_hg_indicator drop column former_id; -- alter table pre_hg_indicator drop column former_db; rename table pre_hg_indicator to hg_indicator; drop table if exists hg_period; -- alter table pre_hg_period drop column former_id; -- alter table pre_hg_period drop column former_db; rename table pre_hg_period to hg_period; drop table if exists hg_struct; -- alter table pre_hg_struct drop column former_id; -- alter table pre_hg_struct drop column former_db; rename table pre_hg_struct to hg_struct; drop table if exists hg_val_high; -- alter table pre_hg_val_high drop column former_id; -- alter table pre_hg_val_high drop column former_db; rename table pre_hg_val_high to hg_val_high; drop table if exists hg_val_struct; -- alter table pre_hg_val_struct drop column former_id; -- alter table pre_hg_val_struct drop column former_db; rename table pre_hg_val_struct to hg_val_struct; drop table if exists hg_valoration; -- alter table pre_hg_valoration drop column former_id; -- alter table pre_hg_valoration drop column former_db; rename table pre_hg_valoration to hg_valoration; drop table if exists hg_version; -- alter table pre_hg_version drop column former_id; -- alter table pre_hg_version drop column former_db; rename table pre_hg_version to hg_version; drop table if exists hg_channel; rename table pre_hg_channel to hg_channel; ---- ---- ---- STEP 15: create (or recreate) indexes ---- ---- -- -- make indexes -- -- -- Table: hg_struct -- create index hg_struct_id on hg_struct (id_struct); create index hg_struct_id_parent on hg_struct (id_struct_parent); create index hg_struct_id_period on hg_struct (id_period); create index hg_struct_id_channel on hg_struct (id_channel); -- -- Table: hg_channel -- create index hg_channel_id on hg_channel ( id_channel ); -- -- Table: hg_detail -- create index hg_detail_hash on hg_detail (field_hash); create index hg_detail_id_struct on hg_detail (id_struct); -- DUDA de si este es eficaz --create index hg_detail_hash_id_struct on hg_detail( field_hash,id_struct ); -- -- Table: hg_indicator -- create index hg_indicator_id on hg_indicator (id_indic); -- -- Table: hg_valoration -- create index hg_valoration_id_indic on hg_valoration (id_indic); create index hg_valoration_id_struct on hg_valoration (id_struct); -- -- Table: hg_val_high -- create index hg_val_high_id_minor on hg_val_high( id_minor ); create index hg_val_high_id_major on hg_val_high( id_major ); create index hg_val_high_id_indic on hg_val_high( id_indic ); -- -- Table: hg_val_struct -- create index hg_val_st_id_minor on hg_val_struct( id_minor ); create index hg_val_st_id_major on hg_val_struct( id_major ); ---- ---- ---- STEP 16: safety measures ---- ---- -- anotate in the agenda that -- a copy of the database must be done
windows/notas.1396991115.txt.gz ยท Last modified: 2022/12/02 21:02 (external edit)