suguru1989’s blog

プログラマー見習いが学んだことを書いていくブログ

Postgresqlのテーブル名が大文字だとややこしい件

Postgresqlの大文字/小文字の扱いについて。

 

CREATE TABLE FOO (ID INT);

CREATE TABLE foo (ID INT);

は、同じテーブル『foo』を作成する。

 

そして、

CREATE TABLE "FOO" (ID INT);

と、

CREATE TABLE "Foo" (ID INT);

は、それぞれ、

テーブル『FOO』と、『Foo』を作成する。

 

つまり、ダブルクォーテーション(")で囲った部分は大文字/小文字が区別され、

囲わない部分は、小文字として認識される。

 

上記の3テーブルをそれぞれSELECTしたとき、

SELECT * FROM FOO;

SELECT * FROM "FOO";

SELECT * FROM "Foo";

はそれぞれ明確に異なる。

 

ちなみに、PostgresqlのpgAdminでテーブルを作成するとき、

テーブル名を大文字にすると、上記のダブルクォーテーションで

囲ったときと同じ処理になる。

pgAdminを使っているときは要注意。