FAQ

[PostgreSQL-ES] Copiar de una tabla a otra pero con opcion de insertar o actualizar

Carlos Mendez
Jan 22, 2008 at 3:02 am
Hola,

Como se puede hacer esto de la manera mas eficiente?
Copiar datos de una tabla a otra pero si el registro no esta entonces
insertarlo pero si ya esta entonces actualizarlo,

Gracias por la ayuda.
saludos.
reply

Search Discussions

4 responses

  • Jaime Casanova at Jan 22, 2008 at 4:29 am

    2008/1/21 Carlos Mendez <lucas1850@gmail.com>:
    Hola,

    Como se puede hacer esto de la manera mas eficiente?
    Copiar datos de una tabla a otra pero si el registro no esta entonces
    insertarlo pero si ya esta entonces actualizarlo,
    el comando Merge seria ideal para esto, pero lamentablemente no esta
    implementado en postgres (aun)

    mientras tanto necesitaras una funcion, algo como el ejemplo 37.1 en:
    http://www.postgresql.org/docs/8.2/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING


    --
    Atentamente,
    Jaime Casanova

    "Programming today is a race between software engineers striving to
    build bigger and better idiot-proof programs and the universe trying
    to produce bigger and better idiots.
    So far, the universe is winning."
    Richard Cook
  • Carlos Mendez at Jan 22, 2008 at 5:36 pm
    Hola, Gracias por las respuestas,

    tratare de explicarme mejor, lo que busco es copiar los datos de una tabla
    digamos clientesA a otra clientesB, comprobando que si el apellido paterno,
    materno y nombre ya esta en la tabla clientesB entonces que no se inserte
    sino que se actualize como ser la direccion del cliente, telefono, etc. pero
    si la tabla clientesB no tiene a ese cliente entonces insertarlo.
    Estoy buscando como hacerlo de una manera optima, con funciones plpgslq? con
    solo sql?
    he visto por ejemplo que el codigo sql para copiar datos de una tabla a otra
    es muy sencillo y me parece muy bueno, estoy buscando algo similar para
    resolver mi problema,

    Gracias de antemano por la ayuda,
    saludos.
  • Julio Cesar Sánchez González at Jan 22, 2008 at 9:05 pm

    Carlos Mendez wrote:
    Hola, Gracias por las respuestas,

    tratare de explicarme mejor, lo que busco es copiar los datos de una
    tabla digamos clientesA a otra clientesB, comprobando que si el
    apellido paterno, materno y nombre ya esta en la tabla clientesB
    entonces que no se inserte sino que se actualize como ser la direccion
    del cliente, telefono, etc. pero si la tabla clientesB no tiene a ese
    cliente entonces insertarlo.
    Estoy buscando como hacerlo de una manera optima, con funciones
    plpgslq? con solo sql?
    he visto por ejemplo que el codigo sql para copiar datos de una tabla
    a otra es muy sencillo y me parece muy bueno, estoy buscando
    algo similar para resolver mi problema,

    Gracias de antemano por la ayuda,
    saludos.
    Porque no usas un trigger.

    --
    Saludos,

    Julio Cesar Sánchez González.

    --
    Ahora me he convertido en la muerte, destructora de mundos.
    Soy la Muerte que se lleva todo, la fuente de las cosas que vendran.

    www.sistemasyconectividad.com.mx http://darkavngr.blogspot.com/
  • Jaime Casanova at Jan 22, 2008 at 11:31 pm

    2008/1/22 Carlos Mendez <lucas1850@gmail.com>:
    Hola, Gracias por las respuestas,

    tratare de explicarme mejor, lo que busco es copiar los datos de una tabla
    digamos clientesA a otra clientesB, comprobando que si el apellido paterno,
    materno y nombre ya esta en la tabla clientesB entonces que no se inserte
    sino que se actualize como ser la direccion del cliente, telefono, etc. pero
    si la tabla clientesB no tiene a ese cliente entonces insertarlo.
    Estoy buscando como hacerlo de una manera optima, con funciones plpgslq? con
    solo sql?
    he visto por ejemplo que el codigo sql para copiar datos de una tabla a otra
    es muy sencillo y me parece muy bueno, estoy buscando algo similar para
    resolver mi problema,
    y que tiene de malo la funcion a la que te direccione?

    --
    Atentamente,
    Jaime Casanova

    "Programming today is a race between software engineers striving to
    build bigger and better idiot-proof programs and the universe trying
    to produce bigger and better idiots.
    So far, the universe is winning."
    Richard Cook

Related Discussions