如果具有多个插入值的查询失败,那么先前的值会怎样?

jla*_*s62 2 postgresql

我正在使用postgresql,并假设我有以下查询。

insert into table_name values (1, 1), (1, 3);
Run Code Online (Sandbox Code Playgroud)

并说插入值(1,3)失败。是否(1,1)插入值?

根据我所做的测试,不会插入不会引起任何错误的第一个值,但是我一直无法找到任何源来备份该值。我试图谷歌已经提出了不同的主题。

通常,插入多个值时,它是全有还是全无?还是可能仅插入某些值?

谢谢

Clo*_*eto 5

是否插入值(1,1)?

否。Postgresql中的每个语句本身就是一个事务

手册

PostgreSQL实际上将每个SQL语句都视为在事务内执行。如果您不发出BEGIN命令,则每个单独的语句都有一个隐式的BEGIN和(如果成功的话)用COMMIT包装。