51
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PostgreSQLでは識別子に大文字を使ってはいけない

Posted at

タイトルの通り、PostgreSQLではテーブル名、カラム名など識別子に英大文字を使うべきではありません。

PostgreSQLは命令中の識別子を読み取るとき、二重引用符でくくられていなければ大文字を小文字に正規化します。その上で大文字小文字を区別して認識します。

その結果、

  1. PgAdminでUsersテーブルを作る
  2. ツールはちゃんと二重引用符でくくるのでそのままの名前でテーブルができる
  3. コード内でselect id, name from Usersなどと書くと、select id, name from usersと解釈されてしまいテーブルが見つからない

などという馬鹿馬鹿しい事故が起こることになります。
手書きでSQLを書くならまだしも、O/Rマッパーが絡んだりするとや闇要素でてきますね。

(本人のブログ記事 http://cs.hatenablog.jp/entry/2014/05/31/125239 の再掲)

51
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?