Обсуждение: Updating an array
How can I append an element to an array, without read and rewrite the full array. CREATE TABLE xxx ( id int, nom varchar(10), nombres int[], PRIMARY KEY(id) ); *** 1 *** INSERT INTO xxx VALUES( 1,'aaa','{10,20,30,40}'); ==> Here the row is well created. *** 2 *** UPDATE xxx SET nombres[5]= 63 WHERE id = 1; ==> Here, I'd just append a new element to the array. That doesn't work *** 3 *** UPDATE xxx SET nombres= '{10,20,30,40,63}' WHERE id = 1; ==> That works, but needs to read out the array and to rewrite it. Is it possible to avoid that? Thanks, Renaud THONNART
Renaud Tthonnart <thonnart@amwdb.u-strasbg.fr> writes: > *** 2 *** > UPDATE xxx > SET nombres[5]= 63 > WHERE id = 1; > ==> Here, I'd just append a new element to the array. That doesn't work This does work --- at least for one-dimensional arrays --- as of 7.1. regards, tom lane
Tom Lane wrote: > Renaud Tthonnart <thonnart@amwdb.u-strasbg.fr> writes: > > *** 2 *** > > UPDATE xxx > > SET nombres[5]= 63 > > WHERE id = 1; > > ==> Here, I'd just append a new element to the array. That doesn't work > > This does work --- at least for one-dimensional arrays --- as of 7.1. > > regards, tom lane Ok, many thanks! Renaud THONNART