5
ปัญหาการล็อคด้วย DELETE / INSERT พร้อมกันใน PostgreSQL
มันค่อนข้างง่าย แต่ฉันก็งงกับสิ่งที่ PG ทำ (v9.0) เราเริ่มต้นด้วยตารางง่ายๆ CREATE TABLE test (id INT PRIMARY KEY); และไม่กี่แถว: INSERT INTO TEST VALUES (1); INSERT INTO TEST VALUES (2); การใช้เครื่องมือสืบค้น JDBC ที่ฉันโปรดปราน (ExecuteQuery) ฉันเชื่อมต่อหน้าต่างสองเซสชันเข้ากับฐานข้อมูลที่ตารางนี้ใช้งานอยู่ ทั้งคู่เป็นธุรกรรม (เช่น auto-commit = false) ลองเรียกพวกมันว่า S1 และ S2 รหัสเดียวกันสำหรับแต่ละ: 1:DELETE FROM test WHERE id=1; 2:INSERT INTO test VALUES (1); 3:COMMIT; …