Hola foro Si hacemos comparaciones con el informix antes de insertar a la tabla al campo definido como serial se le asigna valor cero y luego se inserta, eso hace que el motor tome el siguiente valor, y sin importar si estas haciendo un insert despues de un cargado a pulso de la tabla, cuando la tabla es recien creada y luego se inserta toma el valor 1 ... pero si se viene de importar valores, repito siempre toma el maximo valor mas 1 y ese valor lo almacena en una variable que se llama SQLCA.SQLERRD[2] ..... Seria interesante que esta caracteristica sea adicionada al motor de postgresql.
Saludos cordiales Fernando Lopez Santa Cruz Bolivia El 15 de enero de 2009 7:26, Calabaza <calali...@gmail.com> escribió: > 2009/1/14 Gabriel Ferro <gabrielrfe...@yahoo.com.ar>: > > ----- Mensaje original ---- > > > >> De: Gustavo Rosso <gro...@sadaic.org.ar> > >> Para: Miguel Angel <mvillago...@sayab.com.mx>; > pgsql-es-ayuda@postgresql.org > >> Enviado: miércoles 14 de enero de 2009, 13:39:31 > >> Asunto: Re: [pgsql-es-ayuda] Experiencias migrando db SqlServer a > postgresql > >> > >> Yo hice esta experiencia, tratando de automatizar los maximo posible en > >> sqlserver importe los datos de cada tabla. > >> (Hay una aplicacion dentro del administrador corporativo que > >> graficamente te permite hacerlo) > >> El delimitador que use es el pipe ( | ) > >> Luego hice un scrip para que inserte todos los datos en postgres (Antes > >> que esto ya tenia armado toda las estructuras de las tablas). > >> Ejemplo del scrip: > >> > >> COPY adesaldo FROM '/home/postgres/datos/adesaldo.dat' DELIMITERS '|' > >> WITH NULL AS ''; > >> COPY ajustes FROM '/home/postgres/datos/ajustes.dat' DELIMITERS '|' WITH > >> NULL AS ''; > >> COPY anexo_lotes FROM '/home/postgres/datos/anexo_lotes.dat' DELIMITERS > >> '|' WITH NULL AS ''; > >> . > >> . > >> . > >> Espero te sriva. > >> Gustavo > >> > >> Miguel Angel escribió: > >> > El mar, 13-01-2009 a las 16:22 -0500, Ricardo Mendoza escribió: > >> > > >> >> Saludos a los miembros de la lista. > >> >> > >> >> Revisando los post en el archivo de la lista, se toca brevemente el > >> >> tema sobre como migrar, desearia conocer experiencias sobre migracion > >> >> de bases de datos sqlserver a postgresql, > >> >> > >> > > >> > A modo de comentario te digo que migrarlo es algo sencillo pero > tedioso > >> > en cuestión de datos; pero para con funciones y disparadores tienes > que > >> > tratarlos de uno a uno para poder hacer la correcta conversión a el > >> > lenguaje de plpgsql. > >> > > >> > > >> >> en especial con referencia a > >> >> como manejar la interaccion con aplicaciones remotas de tres capas o > >> >> mas > >> >> > >> > > >> > Para con esto he manejado programas a base de struts en java con 7 > >> > capas, no se si te refieras a esto pero en cuanto a la conexión con > >> > postgres solo hay que dar una conexión válida, crear los archivos de > >> > lectura y listo. > >> > > >> > > >> >> y los equivalentes de SQL Server Reporting Services,SQL Server > >> >> Analysis Services.etc. gracias > >> >> > >> > > >> > Dos buenos equivalentes podrÃan ser las suites de Jasper Reports o > bien > >> > la suite de Pentaho, ambos tienen su propio reporteador, ambos pueden > >> > conectarse a cualquier base por medio de un JDBC y ambos finalmente > >> > tienen su propia herramienta de ETL y cubos (dentro de jasper report > >> > este punto ya deberÃa estar puesto que la última vez que entre ya se > >> > hablaba de su desarrollo). > >> > > >> > > > > > Siempre me pregunte que cuando cargo datos desde archivos planos > > que cuidado tendre que tener si en las tablas se usan campos serial.. > > ¿sera suficiente con asegurarse que estan inicializados correctamente > estos campos en la tabla destino antes de importar? > > Me explico.. si tengo la tablas factura con clave numfactserial, la > > tabla productos con clave numprodserial y la tabla facturadetalle con > > los campos integer numfac y numprod > > de modo de lograr la relacion n a n, al llevarla a postgres deberia hacer > > 1-asegurar que los iniciales de los seriales esten en 0 o 1 o lo que > corresponda > > 2- importar la tabla productos sin insertar la clave (ya que sera serial) > > 3- importar la tabla facturas sin insertar la clave (ya que sera serial) > > 4- importar la tabla facturadetella conteniendo los dos campos.... > > > > Calculo que sera asi, de todas maneras en BD mas complejas se puede > > complicar mas las cosas asi que no se sino sera mejor importar los > > datos desde una funcion que haga los insert. > > > ¿que dicen? > Yo me decanto por la opción 4 ya que si a un campo serial le insertas > un dato ya no se ejecuta su secuencia, y luego puedes ver en que > numero quedó ese campo en tu tabla y asignas ese numero (más uno si > mal no recuerdo) a tu secuencia para que todo quede aceitado para tu > software. > > De esta forma te aseguras que tu BD se encuentra íntegra ya que si > borraste algun registro y su id difiere de la cantidad total de > registros ya vas a tener problemas al importar datos usando el > serial... > > Un abrazo. > -- > §~^Calabaza^~§ from Villa Elisa, Paraguay > -- > TIP 8: explain analyze es tu amigo >