PostgreSQL 按名称计算用户
假设我们想知道有多少用户具有相同的名称。让我们创建表 users
如下:
create table users(
id serial,
name varchar(8) unique,
count int
);
现在,我们刚刚发现了一个名为 Joe 的新用户,并希望将他考虑在内。为了实现这一点,我们需要确定是否存在具有其名称的现有行,如果是,则将其更新为递增计数; 另一方面,如果没有现有的行,我们应该创建它。
PostgreSQL 使用的语法如下: 插入…冲突…做更新中… 。在这种情况下:
insert into users(name, count)
values('Joe', 1)
on conflict (name) do update set count = users.count + 1;