By default, psql is configured with autocommit on. Use another administrator, like phpadmin, and configure the connection with autocommit off.
Atte JRBM El jue, 19 oct 2023 a las 11:49, Wen Yi (<wen...@qq.com>) escribió: > Hi community, > I am learning the transaction of the postgresql, and I try to test using > these: > > ###### > > terminal 1: > > postgres=# select * from t; > number > -------- > 1 > (1 row) > > postgres=# update t set number = 2; > UPDATE 1 > postgres=# select * from t; > number > -------- > 2 > (1 row) > > postgres=# select * from t; > number > -------- > 2 > (1 row) > > postgres=# > > ###### > > terminal 2: > > postgres=# create table t (number integer); > CREATE TABLE > postgres=# insert into t values (1); > INSERT 0 1 > postgres=# begin; > BEGIN > postgres=*# insert into t values (2); > INSERT 0 1 > postgres=*# select * from t; > number > -------- > 2 > 2 > (2 rows) > > postgres=*# rollback; > ROLLBACK > > My question is, in my view, the transaction model should make sure that > when one on-process transaction don't commit itself, the data on this > transaction shouldn't can be modified by other transaction(I the > single-statement also be treated as a simple transaction), but why the > update works?(I think terminal 1 will block until the terminal 2's > transaction commit or rollback). > Can someone share you opinion to me? > Thanks in advance! > > Yours, > Wen Yi > > >