Я хотел бы обновить несколько строк, только если все они существуют в базе данных, как это можно сделать?
В этом случае, если какой-либо из книг не существует, это не останавливает другая будет обновлена.
books
таблица выглядит следующим образом:
id PK
title VARCHAR
Допустим, в базе данных хранится только одна книга:
id: 1
title: "A simple title"
Если я хочу обновить 2 книги, а одна из них не хранится в базе данных, я бы хотел отменить весь процесс обновления - оставьте таблицу без изменений.
В приведенном ниже запросе ничего не обновляется:
UPDATE "books" AS "book"
SET "title" = _data."title"
FROM (VALUES ('updated book 1', 1), ('updated book 2', 2)) AS _data("title", "id")
WHERE "book"."id" = _data."id"
Можно ли этого добиться без использования транзакции?
Спасибо заранее за помощь!