Popular Posts(last24hours)

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

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。

上記サイトより

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にしておけばよい。

https://www.postgresql.jp/document/7.3/user/datatype-oid.html#:~:text=%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E8%AD%98%E5%88%A5%E5%AD%90%20(OID)%20%E3%81%AF%20PostgreSQL,%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E8%AD%98%E5%88%A5%E5%AD%90%E3%82%92%E8%A1%A8%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

上記サイトより
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ツールによっても、発生したりしなかったりもするらしい。

【PR】最近楽天で購入した商品

こちらもなかなかのボリューム。子供が綺麗に折り紙を折れるようになると、成長が感じられて、嬉しい。かんたん・かわいい・楽しい! 決定版 おりがみ大図鑑 大ボリューム!190作品がオールカラーでわかる! [...]

この手のやつは、いったいどういう仕組みで絵とペンの音声をマッチさせているのか不思議。もの凄いボリュームなので、子供も飽きずに楽しめます。音で学べる!英語ことば図鑑5000 タッチペンつき [ アレン玉 [...]

いつの間にか、黎明篇の続きが!前回で完結したとばかり思っていたので、これは嬉しい。そして、めちゃくちゃ面白い!宇宙戦艦ヤマト 黎明篇 第2部 マリグナント・メモリー [ 塙 龍之 ]価格:1,650円 [...]

Tips

Posted by admin