AccessからODBCドライバー経由でPostgreSQLを利用しているわけですが、あるテーブルを作ってから、Accessからレコードが削除できないという問題が発生。
「他のユーザーが同じデータに対して同時に変更を試みているので、プロセスが停止しました。」
となるのです。排他制御の関係かなと思いましたが、自分一人しかこのテーブルを使っていないからおかしいなと思い、いろいろとテーブルを作り直したり実験。
その結果、あるフィールドに timestamp 型があると このエラーが発生することまでは分かった。
その後、ググったところ
http://akionweb.com/archives/2007/07/postgresql_8ms.shtml
上記のページを発見!!!
原因はタイムスタンプ型のミリセカンドの部分をAccessがサポートしていないことによる問題なので、これを扱えるデータ型に変更することで解決。
timestamp をtimestamp(0) に変更すれば良いみたい!
ALTER TABLE target_table ALTER target_column TYPE timestamp(0);
すべてtimestamp型を使っているテーブルに適用すればよい。
なかなか問題解決は一筋縄には行きませんね。
0 件のコメント:
コメントを投稿