我正在使用 postgresql,并假设我有以下查询。
insert into table_name values (1, 1), (1, 3);
让我们说插入值(1,3)
失败。值是否(1,1)
被插入?
从我所做的测试来看,不会插入第一个不会导致任何错误的值,但我无法找到任何来源来支持它。我尝试用谷歌搜索的内容提出了不同的主题。
一般来说,当插入多个值时,它是全有还是全无?或者是否可以只插入一些值?
谢谢
我正在使用 postgresql,并假设我有以下查询。
insert into table_name values (1, 1), (1, 3);
让我们说插入值(1,3)
失败。值是否(1,1)
被插入?
从我所做的测试来看,不会插入第一个不会导致任何错误的值,但我无法找到任何来源来支持它。我尝试用谷歌搜索的内容提出了不同的主题。
一般来说,当插入多个值时,它是全有还是全无?或者是否可以只插入一些值?
谢谢
值 (1,1) 是否被插入?
不,Postgresql 中的每条语句本身就是一个事务
从手册:
PostgreSQL 实际上将每个 SQL 语句视为在事务中执行。如果您不发出 BEGIN 命令,则每个单独的语句都有一个隐式的 BEGIN 和(如果成功)围绕它的 COMMIT。