From: | Alejandro Gasca <agasca(at)yahoo(dot)com> |
---|---|
To: | Raul Caso <feve18(at)gmail(dot)com>, Juan "Martnez" <jeugenio(at)umcervantes(dot)cl> |
Cc: | lista postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: pregunta importacion con copy |
Date: | 2006-02-24 15:57:56 |
Message-ID: | 20060224155756.36864.qmail@web34307.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola, me quedé con la duda de que copy to no hace chequeos de
integridad referencial, pero esto es falso, por lo menos de la 7.4 para
arriba.
En la documentación dice: "COPY FROM will invoke any triggers and check
constraints on the destination table. However, it will not invoke
rules.
"
El que no hace caso, segun recuerdo, es el TRUNCATE... pero
personalmente no lo he usado.
--- Raul Caso <feve18(at)gmail(dot)com> escribió:
> El día 23/02/06, Juan Martínez <jeugenio(at)umcervantes(dot)cl> escribió:
> >
> > > Amigos tengo una duda tengo una tabla de digamos 6 campos 1 de
> ellos
> > > serial
> > > y bueno exporte de una base mysql datos de una tabla en un
> archivo
> > txt(el
> > > archivo tiene 3 campos y 7693 filas) me pregunto si con el copy
> puedo
> > > importar esos datos a mi tabla pero como hago para elegir que
> campos
> > > porque
> > > son solo 3 los del archivo y ademas el serial de la tabla tiene k
> > > autoincrementarse espero haber sido entendible o si me puedan dar
> otra
> > > opcion se los agradeceria
> >
> > Leiste el manual de postgres? (nunca esta demas, te lo aseguro)
> Ahí sale
> > clarito.
> >
> > de todas maneras:
> >
> > CREATE TABLE tabla (
> > id serial,
> > campo1 text,
> > campo2 text,
> > campo3 text,
> > campo4 text,
> > campo5 text
> > );
> >
> > COPY tabla(campo1,campo2,campo4) FROM <archivo> WITH DELIMITER ',';
> >
> > El <archivo> preocupate qeu tenga los permisos al menos 444, para
> que el
> > servidor lo pueda leer sin problemas (si es que estas en
> linux/*nix).
> >
> > Preocupate tambien que el delimitador (WITH DELIMITER) sea el mismo
> de
> > <archivo>
> >
> > p.e.:
> > ',' : Separador por comas
> > ';' : Separados por puntos y comas
> > '\t': Separados por tabuladores
> >
> > Luego, si definiste el serial en la creación de la tabla, y no lo
> hiciste
> > a mano (o sea diciendo en la creacion de la tabla que el tipo del
> campo es
> > serial, y no diciendo que es integer y luego creando la secuencia a
> mano),
> > preocupate que el default del campo sea nextval('secuencia'). Eso
> lo puede
> > ver con \d tabla en psql. Si tiene el valor por defecto, va a
> funcionar
> > sin problemas.
> >
> > Como dice la documentación, copy resulta ser más rápido por que no
> hace
> > caso a las reglas de integridad y de referencialidad. Ten cuidado
> con eso.
> >
> > Atte.
> > Juan Martínez
> > Depto. Inf.
> > UMC
> >
> >
>
> Gracias juan efectivamente lei el manual y vi las opciones de copy
> gracias
> por el consejo :)
> --
> ¿Quieres ser parte del 5% o del 95%?
> http://www.ixp.net/rcaso
> Raulinho
> 97033825-4327239
>
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Rubén da Silva | 2006-02-24 16:34:19 | Almacenar Foto, Audio y Video |
Previous Message | Dimas Ayala | 2006-02-24 15:52:30 | Re: Uso de memoria por conexion. |