From: | Alvaro Herrera Munoz <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | Carlos Ojea Castro <carlosojea(at)leveltelecom(dot)es> |
Cc: | pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx |
Subject: | Re: [Pgsql-ayuda] psql no actualiza los elementos de un array? |
Date: | 2004-02-03 20:29:19 |
Message-ID: | 20040203202919.GB4366@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Tue, Feb 03, 2004 at 04:12:53PM +0100, Carlos Ojea Castro wrote:
> Tengo una duda a la hora de actualizar datos en el campo 'mediciones' de
> tipo 'int [145]'.
> En teoria todo va bien, pero al comprobar los datos, los valores no
> aparecen.
No, lamentablemente no puedes hacer eso. Un array no puede tener
elementos nulos; o bien el array completo es NULL, o bien todos los
elementos son valores definidos. Tienes que definir valores para
todos los elementos, y _entonces_ puedes actualizar uno cualquiera
de ellos. Me parece sorprendente que no arroje un error cuando trates
de actualizar un elemento en un array que es NULL, quizas es un bug.
En el ejemplo de abajo, mediciones era inicialmente NULL:
(esto es con 7.4beta5)
alvherre=> update foo set mediciones = '{500}';
UPDATE 1
alvherre=> update foo set mediciones[3]=500;
ERROR: los subndices de array no son vlidos
alvherre=> update foo set mediciones[2]=500;
UPDATE 1
alvherre=> select * from foo;
mediciones
------------
{500,500}
(1 fila)
alvherre=> update foo set mediciones[2]=100;
UPDATE 1
alvherre=> select * from foo;
mediciones
------------
{500,100}
(1 fila)
--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Ciencias polticas es la ciencia de entender por qu
los polticos actan como lo hacen" (netfunny.com)
From | Date | Subject | |
---|---|---|---|
Next Message | Gunnar Wolf | 2004-02-03 22:07:43 | Re: Re: [Pgsql-ayuda] Manejo de excepciones |
Previous Message | Martin Marques | 2004-02-03 20:05:21 | Re: [Pgsql-ayuda] Sobre vacuum |