Postgresql 如何更新Postgres表中的多个值?
我在postgres中有一个表需要更新:Postgresql 如何更新Postgres表中的多个值?,postgresql,Postgresql,我在postgres中有一个表需要更新: \d+ teachers; Table "public.teachers" Column | Type | Collation | Nullable | Default | Storage | Stats target
\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,只有两个随机唯一的无意义数字,用于标识两条记录。不,这两个身份证之间没有口舌。你没有问题,所以不要试图解决它。