Postgresql
在通過 ODBC 連接到 PostgreSQL 的 Access 中編輯新記錄時發生衝突
我有一個使用 Microsoft Access 2010 作為前端和在 Linux 上執行的 PostrgreSQL 伺服器 9.5.12 作為後端的設置。Windows PC 已安裝 PostrgreSQL ODBC 驅動程序版本 10_02_0000(目前最新)。連接基於 Unicode,設置為預設設置,但
Bool as char
禁用和True is -1
啟用除外。我遇到的問題是從 Access 添加的新記錄立即被鎖定,之後無法修改/刪除。錯誤資訊是:
Microsoft Access database engine stopped the process because you and another user are attempting to change the same data at the same time.
我絕對是唯一一個訪問數據庫的人,我可以毫無問題地修改/刪除舊記錄。該問題僅發生在我自己創建的記錄上。
我在這裡找到了答案:
https://stackoverflow.com/questions/25088970/ms-access-odbc-with-postgresql-table-write-conflict
我的問題是由一個
timestamp
有default now()
約束的欄位引起的。因為PostgreSQL中的timestamp預設比Access精度更高,所以通過內部函式自動更新now()
會因為值不匹配而導致衝突。timestamp(0)
通過使用而不是僅僅timestamp
解決問題來降低數據庫的精度。