ОБНОВЛЕНИЕ со значением INSERT RETURNING PGSQL - PullRequest
0 голосов
/ 07 декабря 2018

Попытка обновить определенный столбец вновь созданным идентификатором.Пример:

╔═══════════════════════════╗
║ TABLE_LIST_BINDER         ║
╠════╦══════════════════════╣
║ id ║ tbl_id_lists         ║
╠════╬══════════════════════╣
║ 1  ║ 1,2,3,4,5,6,7,8,9,10 ║
╚════╩══════════════════════╝

╔═════════════════════════════╗
║ TABLE_LIST_ITSELF           ║
╠════╦═════════════╦══════════╣
║ id ║ text_or_sm  ║ some_val ║
╠════╬═════════════╬══════════╣
║ 11 ║ ok lets see ║ ikd123   ║
╚════╩═════════════╩══════════╝

Хорошо, это грубый пример того, что у меня есть.

Текстовое объяснение: Я пытаюсь обновить tbl_id_lists из tbl_list_binder,добавив только что вставленную строку в TABLE_LIST_ITSLEF, используя postgresql.Это выполнимо в одном запросе?

Мое текущее состояние кода SQL:

UPDATE TABLE_LIST_BINDER 
    SET tbl_id_lists=concat(tbl_id_lists,','(
        INSERT INTO TABLE_LIST_ITSELF (text_or_sm, some_val) 
        VALUES ('letz danse','mkei') 
        RETURNING id)) 
    WHERE id=1

Мой подход был следующим: использование concat для объединения существующего текстазначение, затем запятая и, наконец, возвращаемое значение идентификатора ..

1 Ответ

0 голосов
/ 07 декабря 2018
with _insert as 
(
INSERT INTO TABLE_LIST_ITSELF (text_or_sm, some_val) 
        VALUES ('letz danse','mkei') 
        RETURNING id
)
UPDATE TABLE_LIST_BINDER 
    SET tbl_id_lists=concat(tbl_id_lists,',' || (select id from _insert))
where id = 1;
...