Назад | Перейти на главную страницу

Конфликт при редактировании новых записей в Access, подключенном к PostgreSQL через ODBC

У меня есть установка с Microsoft Access 2010 в качестве внешнего интерфейса и сервера PostrgreSQL 9.5.12, работающего на Linux в качестве внутреннего интерфейса. На ПК с Windows установлен драйвер 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 по умолчанию имеет более высокую точность по сравнению с Access, автоматическое обновление с помощью внутренней функции now() вызвали конфликт из-за несоответствия ценностей. Снижение точности в базе данных за счет использования timestamp(0) вместо просто timestamp решает проблему.