我只想在数据库中都存在多行的情况下更新多行,如何做到这一点?
在这种情况下,如果任何一本书不存在,它不会阻止另一本书的更新。
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"
是否可以在不使用事务的情况下实现这一目标?
提前感谢您的帮助!