jueves, mayo 28, 2009

Migrar Datos de una tabla a otra, con ligeras diferencias

Eu!

Siguiendo el tema de las migraciones, recientemente me tocó que pasar unos datos, de una tabla a otra, que contenían ligeras diferencias, par de campos de tipo real y double precsion pasaban a ahora a numeric, más algunos campos menos que tenía la tabla destino.

Sencillo, me hice una query que insertara según lo que leyera:

INSERT INTO agri04 (id, reg_001, est_001, mun_001, par_001, cpo_001, agri04_001, agri03_001, agri04_003, agri04_004, agri04_005, agri04_006, agri04_007, agri04_008) (SELECT id, codreg, codest, codmun, codpar, codcen, EXTRACT(YEAR FROM fecha), id_det, fund, reno, ssem, scos, prod, valor FROM agricolav);


El tema de los tipos de datos, en vista de la fortuna de que ambos eran números con decimales, sólo tuve que seleccionar el tamaño de los numerics, que al final quedaron de (12,2) algunos, y otros de (10,2).

Otro caso:

INSERT INTO municipios
(gid, id, municipio, estado, the_geom)
(SELECT gid, id, municipio,
CASE
WHEN estado = 'Mrida' THEN 14
WHEN estado = 'Tchira' THEN 20
WHEN estado = 'Trujillo' THEN 21
END,
the_geom FROM municipios_region);