Postgresql 如何更新Postgres表中的多个值?

Postgresql 如何更新Postgres表中的多个值?,postgresql,Postgresql,我在postgres中有一个表需要更新: \d+ teachers; Table "public.teachers" Column | Type | Collation | Nullable | Default | Storage | Stats target

我在postgres中有一个表需要更新:

\d+ teachers;
                                                         Table "public.teachers"
   Column   |         Type          | Collation | Nullable |               Default                | Storage  | Stats target | Description
------------+-----------------------+-----------+----------+--------------------------------------+----------+--------------+-------------
 id         | bigint                |           | not null | nextval('teachers_id_seq'::regclass) | plain    |              |
 first_name | character varying(25) |           |          |                                      | extended |              |
 last_name  | character varying(50) |           |          |                                      | extended |              |
 school     | character varying(50) |           |          |                                      | extended |              |
 hire_date  | date                  |           |          |                                      | plain    |              |
 salary     | numeric               |           |          |                                      | main     |              |
Access method: heap
我有两个更新声明,我想在postgres中发表,但将来会有更多:

UPDATE teachers SET id = 11 WHERE id = 23;
UPDATE teachers SET id = 12 WHERE id = 24;

如何将这些update语句组合成一个语句?

检查此项。但根据您可能想考虑的情况:在您的情况下设置id=id-12。或者,您可能只想将所有这些更新放在Transaction中,为什么要更改这些id值?看起来id列应该是您的主键-尽管根据您的
\d+
输出,您没有声明它是主键。此外,您有一个连续的默认值,这很可能会导致id列中出现空白。我删除了一些记录,添加新记录时,id列中出现了空白。例如,当我添加新记录时,它将变为8,9,10,22,23,24。我希望它们是连续的。这是一个测试表,但我想知道如何一次更新多个记录。您的id中没有空白。标识符只是一个无意义的数字。473645843或378287648,只有两个随机唯一的无意义数字,用于标识两条记录。不,这两个身份证之间没有口舌。你没有问题,所以不要试图解决它。