在唯一列中的行之间切换值

2 rdbms hibernate constraints

假设你有一个这样的表:

id | name
---+---------
1  | foo
2  | bar
Run Code Online (Sandbox Code Playgroud)

name列上有唯一性约束.

如何将行设置为id=2to foo,将行设置id=1bar

我知道你可能只是为两者分配临时名称然后坚持所需的名称,但这似乎不是最简单的方法.

我正在使用Hibernate,所以任何特定于Hibernate的技巧都会很好.这似乎是一个影响所有RDBMS的问题.

Dav*_*vid 5

在Sql Server中,您可以同时更新它们:

UPDATE table
SET Name = CASE WHEN ID = 1 THEN 'bar' ELSE 'foo' END
WHERE ID IN ( 1, 2 )
Run Code Online (Sandbox Code Playgroud)