PostgreSQL:CREATE TABLE時のダブルクォートについて

最終更新日時:2013-01-30 19:22:34
PostgreSQL

概要


PostgreSQL では、CREATE TABLE 文でテーブル名やフィールド名を「"」(ダブルクォート)で括ることにより、特殊文字をテーブル名やフィールド名に含めることが出来ます。
また、ダブルクォートを用いて作成したテーブル名は SELECT 等で使用する際にもダブルクォートで括って指定する必要があります。

通常はわざわざ特殊文字を使用することも無いと思いますが、既存DBの移行等ではやむを得なく使用することもあるかと思います。


使用例


例えば、「test-1」という名称のテーブルを作ることを考えた際、「-」が特殊文字にあたるので、普通に作ろうとするとエラーとなります。

 CREATE TABLE test-1 (item1 text);
 
 ERROR:  syntax error at or near "-"
 LINE 1: create table test-1 (item1 text);


以下のようにダブルクォートで括ると、正常に作成することが出来ます。

 CREATE TABLE "test-1" (item1 text);


フィールド名も同様です。


副作用?


PostgreSQL では、通常はテーブル名、フィールド名はアルファベットで指定したものは小文字に置き換えて実行されます。
しかしながら、アルファベットの大文字をダブルクォートで括った場合には、そのまま大文字で実行され、小文字とは区別されるので注意が必要です。
大文字で作成したテーブルはを利用する際には、INSERT や SELECT でもダブルクォートで括って大文字で参照しなければなりません。

お問い合わせは 掲示板 にて。