PostgreSQL で大文字を含む列名や表名を扱う SQL

あわせて読みたいブログパーツ

某管理システムで使っているデータベースのメンテナンス作業中だけど、一般的に PostgreSQL では半角英数の小文字やアンダースコアのみで列や表の名前を付ける。
MySQL か何かから移行のときにそれを忘れてて、大文字が混じったままの列名がたくさんあって、UPDATE できなくて焦ったのでメモ。

そういうときは、列名や表名にダブルクォーテーション (") をつけておけばよい。
一方、イコールの右辺 (値) には、シングルクオーテーション (') を付ける。

具体的には、以下のようにすればよい。

SELECT * FROM user order BY "idNo";
SELECT * FROM item where "itemId">=2000 ORDER BY "itemNo";
INSERT INTO subjects VALUES (5,'タイトル'));
UPDATE subjects SET "subName"='件名' WHERE "subNo"=5;

PHP だとこんな感じ。

$query = "SELECT * FROM user order BY \"idNo\";";
$query = "SELECT * FROM item where \"itemId\">=2000 ORDER BY \"itemNo\";";
$query = "INSERT INTO subjects VALUES (5,'タイトル'));";
$query = "UPDATE subjects SET \"subName\"='件名' WHERE \"subNo\"=5;";

よく考えたら 3 番目のはあまり関係ないな。

  • ブログSEO対策 : track word 
  • _ 
  • _ 
  •  
  •  

トラックバック

このエントリーのトラックバックURL:
http://thira.plavox.info/cgi-bin/mt5/mt-tb.cgi/105

コメントを投稿






画像の中に見える文字を入力してください。