Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

PostgreSQLの「column “oid” does not exist」エラー

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

上記サイトより

8.1以降のPostgreSQLでは、デフォルトではテーブルにoidが含まれなくなる模様。oidが存在すること前提で書いてあったスクリプトで“column “oid” does not exist”というエラーが発生した。これは default_with_oids がデフォルトONからOFFになったため

対応としては、スクリプトを書き換えるのが一番だが、対症療法としては以下。

ALTER TABLE hogehoge SET WITH OIDS;

次回同じ作業をする場合は、(CREATE TABLEする前に、というかpostgresを起動する前に)postgresql.confの default_with_oids をONにしておけばよい。

オブジェクト識別子データ型
上記サイトより
PostgresのOIDとは何ですか?
オブジェクト識別子 (OID) は PostgreSQL の内部でさまざまなシステムテーブルのプライマリキーとして使用されます。 また、OID システム列がユーザ作成のテーブルに追加されます (テーブルの作成時に WITHOUT OIDS が指定されていない場合)。 データ型 oid はオブジェクト識別子を表します。

 

PotgreSQL8.1以降のdefault_with_oidsパラメータについての記事↓

https://www.1×1.jp/blog/2007/08/pgsql81_oid.html

ちなみに、このエラーはPostgreSQLに対して実行するSQLツールによっても、発生したりしなかったりもするらしい。

タイトルとURLをコピーしました