0
0

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 3 years have passed since last update.

Postgresqlはシングルクォーテーションとダブルクォーテーションを区別する

Posted at

概要

Rake TaskでデータベースSQLを実行するスクリプトを作成中にPostgreSQLでデータの挿入(INSERT INTO)を試みたものの、何度も下記のようなエラーが発生し、結構苦戦したので自分なりに調査してわかったことをまとめることにした。

環境

macOD Catalina 10.15.7
PostgreSQL 13.1

エラーの詳細

テーブルにレコードを挿入する一番基本的な下記のコマンドを実行しても毎回同様のエラーメッセージが発生していた
この時の自分は、varchar型のnameカラムに値( "sample_name" )を挿入しようとしていました

  • 実行クエリ
 INSERT INTO sample_table VALUES ("sample_name");
  • 発生していたエラーメッセージ
 column "sample_name" does not exist

解決方法

どうやら、Postgresqlはダブルクォーテーション("")とシングルクォーテーション('')を区別しているらしく、具体的な区別の仕方は、

  • ダブルクォーテーション("")は、カラム名などを表現する際に用います

  • シングルクォーテーション('')は、文字列定数を表現する際に用います

つまり今回の自分のケースに当てはめると、一生懸命"sample_name"として値を挿入しようとしていましたが、これは毎回sample_nameという名前のカラムとして認識されていたということになります。

実行クエリは以下のようになります。

 INSERT INTO sample_table VALUES ('sample_name');

まとめ

かなりちょっとしたことではありますが、知っているか知らないかで大きく変わる知識かなと思います!

覚えておきましょう。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?