[pgsql-jp: 41260] 「LOCK TABLEはトランザクションブロック内でのみ」のエラー

"オフィス小澤(有 "オフィス小澤(有
2012年 10月 27日 (土) 18:59:08 JST


はじめまして、小澤と申します。
PostgreSQL はあまり使う機会が無かったので、
実務期間数か月の初心者です。


数年前に作成されたサイトのメンテナンスをしております。

本番環境の DB は、更新することが出来ないので、
ローカルに開発環境を作って、修正作業を行っています。

本番環境と開発環境の、PostgreSQL のバージョンの違いによって
困っています。


PHP で、「LOCK TABLE 〜 」という処理があるのですが、

本番環境は問題なく実行できますが、開発環境で、下記のエラーがでます。

SQL エラー:
ERROR:  LOCK TABLEはトランザクションブロック内でのみ使用できます

LOCK TABLE をトランザクションの BEGIN と COMMIT の中に
入れなさい、ということおt思います。


本番環境は、Linux   バージョンは 7.3.4
開発環境の、Windows バージョンは 8.4.4

7.3.4 の頃には、トランザクション処理が無かったのか、
LOCK TABLE との関係が定義されてなかったのかもしれません。


開発環境の PostgreSQL のバージョンを 7.3.4 にしようと思い、
探したのですが、Windows 版はもう無いようです。


下記のことを教えて下さい。

1.開発環境の PostgreSQL の設定で、このエラーを出ないようにする
    方法はないでしょうか。

2.Windows 版の PostgreSQL のバージョンを 7.3.4 が、
    どこかにないでしょうか。


尚、ソースにトランザクション処理を追加するという方法も考えましたが、
修正箇所が多いので、難しいです。


以上、宜しくお願いします。





pgsql-jp メーリングリストの案内