4

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

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

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

从我所做的测试来看,不会插入第一个不会导致任何错误的值,但我无法找到任何来源来支持它。我尝试用谷歌搜索的内容提出了不同的主题。

一般来说,当插入多个值时,它是全有还是全无?或者是否可以只插入一些值?

谢谢

4

1 回答 1

7

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

不,Postgresql 中的每条语句本身就是一个事务

手册

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

于 2013-09-16T19:44:35.427 回答