我正在使用postgresql,并假设我有以下查询。
insert into table_name values (1, 1), (1, 3);
让我们说插入值(1,3)
失败。是否插入了值(1,1)
?
从我已经完成的测试中,不会导致第一个不会导致任何错误的值,但是我无法找到任何来源来支持它。我试图谷歌提出了不同的主题。
通常,在插入多个值时,它是全有或全无的类型吗?或者是否可能只插入一些值?
谢谢
答案 0 :(得分:4)
是否插入了值(1,1)?
没有。 Postgresql中的每个语句本身都是一个事务
来自manual:
PostgreSQL实际上将每个SQL语句视为在事务中执行。如果您不发出BEGIN命令,则每个单独的语句都有一个隐式BEGIN和(如果成功)COMMIT。