Sobes.tech
Senior
54

Ερώτηση #2 Ποιο θα είναι το αποτέλεσμα στη συνεδρία Session #2; Σύνδεση με τη βάση δεδομένων με κενό πίνακα t Συνεδρία #1 --------------------------- psql> BEGIN; -- T1 psql(T1)> INSERT INTO t(id,val) VALUES (1,'a'); -- χωρίς COMMIT psql(T1)> COMMIT; --------------------------- Συνεδρία #2 --------------------------- psql(T2)> SELECT * FROM t; ---------------------------

Εταιρείες όπου ρωτήθηκαν
IT OneIT One

Απάντηση από AI

sobes.tech AI

В Session #2 результатом будет пустой набор строк.

Объяснение:

  • В Session #1 выполняется BEGIN, затем INSERT, но COMMIT вызывается после INSERT.
  • Однако в условии указано "no COMMIT" после INSERT, а потом COMMIT, что противоречиво. Если предположить, что COMMIT не был вызван, то транзакция не зафиксирована.
  • Если транзакция в Session #1 не была зафиксирована (COMMIT не выполнен), то изменения не видны другим сессиям.

Таким образом, при выполнении SELECT * FROM t; в Session #2, таблица t останется пустой, так как вставка не была зафиксирована и не видна другим сессиям.