这是一个例子:
create database users;
create table users (id int unique);
然后一起运行:
insert into users values(1);
insert into users values(1);
我预计第一次插入会成功,但第二次会失败。但是我看到的是它们是原子运行的,并且没有插入任何行。以下是日志:
2021-11-08 23:04:37.825 UTC [181] LOG: statement: insert into users values(1);
insert into users values(1);
2021-11-08 23:04:37.825 UTC [181] ERROR: duplicate key value violates unique constraint "users_id_key"
2021-11-08 23:04:37.825 UTC [181] DETAIL: Key (id)=(1) already exists.
2021-11-08 23:04:37.825 UTC [181] STATEMENT: insert into users values(1);
insert into users values(1);
令人困惑的是没有BEGIN;
or COMMIT;
。具有多个命令的语句是否以原子方式运行?
- 编辑 -
我正在使用 Postico 客户端来运行这些语句。