Re: Update multiple rows in a table with different values

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Update multiple rows in a table with different values
Дата
Msg-id 5a977d3a-22f9-101b-87da-4e4ee1ad69e7@aklaver.com
обсуждение исходный текст
Ответ на Update multiple rows in a table with different values  (shankha <shankhabanerjee@gmail.com>)
Ответы Re: Update multiple rows in a table with different values  (shankha <shankhabanerjee@gmail.com>)
Список pgsql-general
On 07/01/2016 07:26 AM, shankha wrote:
> Greetings,
> I have the following schema:
>
>     CREATE TABLE "s"."t1"
>     (
>         "c1" BigSerial PRIMARY KEY,
>         "c2" BigInt NOT NULL,
>         "c3" BigInt
>     )
>     WITH (OIDS=FALSE);

Unless you have a very old version of Postgres, OIDS=FALSE is the default.

>
>     INSERT INTO s.t1 (c2, c3) VALUES (10, 100);
>     INSERT INTO s.t1 (c2, c3) VALUES (20, 200);
>     INSERT INTO s.t1 (c2, c3) VALUES (30, 300);
>     INSERT INTO s.t1 (c2, c3) VALUES (40, 400);
>
>     PREPARE updateplan (BigInt, BigInt) AS
>         update s.t1
>         SET c3 = $2
>         WHERE c2 = $1;
>
>     EXECUTE updateplan (20, 250);
> ***
>     PREPARE updatearrayplan(BigInt[], BigInt[]) AS
>         for i in size($1)
>         DO
>             update s.t1
>             SET c3 = $2[$i]
>             WHERE c2 = $1[$i]
>         END FOR

I am not familiar with the above syntax, are you using a Postgres
version different from the community version?

>
>     EXECUTE updatearrayplan({20, 30}, {275, 375})
> ***
>     /* 20, 200 -> 20, 275 */
>     /* 30, 300 -> 30, 375 */
> ***
>
> After execution of updatearrayplan I am expecting the rows to have
> these values  20 -> 275 , 30 -> 375
>
> Is there a way to update multiple rows with different column values
> passed in as array. Also is there a guarantee that the order of the
> arrays will be maintained.
>
> Thanks
>
>


--
Adrian Klaver
adrian.klaver@aklaver.com


В списке pgsql-general по дате отправления:

Предыдущее
От: shankha
Дата:
Сообщение: Update multiple rows in a table with different values
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Update multiple rows in a table with different values