Re: Ejecutar un conjunto de scripts sin detenerse en un error...

From: "Yoel Mc Lennan" <listas(at)yoel(dot)com(dot)ar>
To: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ejecutar un conjunto de scripts sin detenerse en un error...
Date: 2009-08-12 23:33:55
Message-ID: 01d301ca1ba5$5ca261e0$8202a8c0@YoelEsc
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gracias Alvaro, en realidad el ejemplo apuntaba a otra definición
uso un motor de actualizaciones (una especia de replicador) que corre las
actualizaciones alojadas en una tabla de la base en un servidor externo
cuando hay cambios en la estructura, las escribimos en esa tabla, los
clientes se conectan y descargan esas actualizaciones, normalmente se
ejecuta un comando por vez, pero quería empezar a mandar varias lineas
ooscripts en una sola actualización y que no se interrumpiera una lista de
comandos si existía un error en alguna linea en particular, ya sea de código
o de consistencia, pero por lo que estuve viendo, tedre que seguir
ejecutando un solo script/comando a la vez.

Gracias igua.

----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
To: "Yoel Mc Lennan" <listas(at)yoel(dot)com(dot)ar>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, August 11, 2009 12:27 PM
Subject: Re: [pgsql-es-ayuda] Ejecutar un conjunto de scripts sin detenerse
en un error...

Yoel Mc Lennan escribió:
> Buenas, una consulta espero que simple :)
>
> Quiero ejecutar un conjunto de ordenes en un solo paso y que a pesar de
> encontrar algun error se pueda continuar con el siguiente script.
>
> Por ejemplo , en el siguinte conjunto, puede que ya posea un registro con
> el ID 2, pero quiero que continue con el siguiente (id 3)
>
> es posible eso ?
> actualment el scrips se corta en el primer error que encuntra.
>
> INSERT INTO "public"."cliente" ("id_cliente", "razon_social", "domicilio",
> "id_pais", "id_ciudad", "localidad")
> VALUES (0, 'No Seleccionado', NULL, NULL, NULL, NULL);
>
> INSERT INTO "public"."cliente" ("id_cliente", "razon_social", "domicilio",
> "id_pais", "id_ciudad", "localidad")
> VALUES (1, 'Juan Perez', '-', 23, 3443, 'Capital Federal');
>
> INSERT INTO "public"."cliente" ("id_cliente", "razon_social", "domicilio",
> "id_pais", "id_ciudad", "localidad")
> VALUES (2, 'Juan Gomez', '-', 23, 3443, 'San Justo');

Lo más fácil es que omitas la columna id_cliente del INSERT y el valor
de VALUES, y uses una secuencia que previamente has hecho setval() al
valor actual más alto existente en la tabla.

--
Alvaro Herrera Developer,
http://www.PostgreSQL.org/
"Hay quien adquiere la mala costumbre de ser infeliz" (M. A. Evans)
--
TIP 1: para suscribirte y desuscribirte, visita
http://archives.postgresql.org/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2009-08-12 23:48:53 Re: Ejecutar un conjunto de scripts sin detenerse en un error...
Previous Message Gabriel Ferro 2009-08-12 23:27:43 Re: Saludos