MS Access write conflict XMIN at (2^32)/2 -1 I have several clients running access 32 bit with a postgres database backends. A while ago, almost all the access apps started to return "write conflicts" when the end users would make changes to the records. Something intresting we also noticed was the XMIN value for all the records that could not be changed was at (2^32)/2-1 or 2,147,483,647. However, when selected in psql, the values were different. (higher than (2^32)/2-1). I am wondering what recourse I have to fix this issue so the applications will work again.
xmin is internal postgreSQL column determines the transaction ID, When Ms Access doing update for a row it comparing the old values of the row in server with the old values of row in its memory to ensure their are no write conflicts.
psqlODBC offers xmin as long (in Access long has max value of (2^32)/2-1 or 2,147,483,647), so when xmin is the server more than (2^32)/2-1 it will be sent to MS Access as (2^32)/2-1. when you edit the row in MS Access, MS Access sent SQL string like this:
UPDATE table1 SET coln=new_valuen WHERE col1=old_value1 AND col2=old_value2 ... AND xmin= 2147483647

but xmin in the server is not 2,147,483,647 so the transaction failed and MS Access show a write conflict error.
so you have some choices to do:

Don't activate xmin column form psqlODBC driver. Uncheck the highlighted option.



Do update transaction by VBA and pure SQL statements.
Dump your database and remove the postgresql server then reinstall it, restore database, so xmin will be resetted to low numbers.