SQLの可読性が下がる上にバグになりやすいけど、こんな事もできるという程度のメモ。 PostgreSQLの場合、テーブル名やカラム名で予約語を使うには、ダブルクォートで囲う。 文字列にダブルクォートが入っている場合は、重ねてエスケープする。 psql=> CREATE TABLE "table" ("select" integer, "*" text, "quo""te" text); psql=> \d table テーブル "public.table" カラム | 型 | 修飾語 --------+---------+-------- select | integer | * | text | quo"te | text | psql=> INSERT INTO "table" ("select", "*", "quo""te") VALUES (1, 'val_1', 'val_2'