Ayuda con vistas actualizables.

From: "Jairo Grateron" <jgrateron(at)gmail(dot)com>
To: "Lista PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Ayuda con vistas actualizables.
Date: 2007-03-13 01:54:52
Message-ID: b6f02a050703121854u71e63cc8n9994e0f887d0d786@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos

Parece una locura pero necesito crear una clave primaria para una vista,

Estoy utilizando delphi con zeoslib y tengo una vista que tiene las reglas
de insert, update y delete, pero zeoslib antes de actualizar un registro de
una tabla primero pregunta si tiene clave primaria

SELECT NULL AS TABLE_CAT, n.nspname AS TABLE_SCHEM, ct.relname AS
TABLE_NAME, a.attname AS COLUMN_NAME, a.attnum AS KEY_SEQ, ci.relname AS
PK_NAME FROM pg_catalog.pg_namespace n, pg_catalog.pg_class ct,
pg_catalog.pg_class ci, pg_catalog.pg_attribute a, pg_catalog.pg_index i
WHERE ct.oid=i.indrelid AND ci.oid=i.indexrelid AND a.attrelid=ci.oid AND
i.indisprimary AND ct.relname = 'view_carac_morfologica' AND
ct.relnamespace = n.oid AND n.nspname = 'public' ORDER BY table_name,
pk_name, key_seq

y luego actualiza el registro de la siguiente manera.

UPDATE public.view_carac_morfologica SET pc=180,fv=190 WHERE
cod_mae_eva_morfologica=42 AND cod_animal=1 AND cod_finca=1 AND alz=150 AND
pc=21 AND fv=3 AND ac=4 AND aut=5 AND ng=6 AND ap=7 AND iud=8 AND pu=9 AND
npu=10 AND spd=11 AND pt=12 AND an=13 AND iut=14 AND lmu=15 AND lp=16

como en la primera consulta no encontro registros zeoslib incluye en el
where todos los campos de la tabla,
por lo tanto al ejecutar el update solo actualiza el primer registro ya que
la regla update modifica 16 registros
uno por cada uno de los valores de alz, pc, fv, etc.

y lo que quisiera es que haga

UPDATE public.view_carac_morfologica SET pc=180,fv=190 WHERE
cod_mae_eva_morfologica=42 AND cod_animal=1 AND cod_finca=1

en este caso cod_mae_eva_morfologica, cod_animal, cod_finca son las llaves
primaria.

Alguna sugerencia?

Gracias.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Sebastián Villalba 2007-03-13 13:00:22 Re: Mostrar caracteres acentuados en PHP
Previous Message Leonel 2007-03-13 01:33:48 Re: ERROR: relation "nombre de tabla" does not exist