如果具有多个插入值的查询失败,则先前值会发生什么

时间:2013-09-16 19:34:54

标签: postgresql

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

insert into table_name values (1, 1), (1, 3);

让我们说插入值(1,3)失败。是否插入了值(1,1)

从我已经完成的测试中,不会导致第一个不会导致任何错误的值,但是我无法找到任何来源来支持它。我试图谷歌提出了不同的主题。

通常,在插入多个值时,它是全有或全无的类型吗?或者是否可能只插入一些值?

谢谢

1 个答案:

答案 0 :(得分:4)

是否插入了值(1,1)?

没有。 Postgresql中的每个语句本身都是一个事务

来自manual

  

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