2016-12-07 5 views
1
select * from note where noteKey = 1 

この文は私に次のエラーを表示します。なぜwhere句にキーマッチング述語があるselect文をpostgresqlで実行できないのですか?

ERROR: column "notekey" does not exist 
LINE 1: select * from note where noteKey = 1 
           ^
HINT: Perhaps you meant to reference the column "note.noteKey". 

私はnote.noteKeyを試しましたが、同じエラーが発生しました。 (私は途中でposticoを使い、noteKeyはテーブルノートの主キーです)。

このステートメントに間違いがありますか?

+6

異なる

select * from note where notekey = 1 

と同じです異なる列名、次に 'noteKey'または' notekey'です。詳細については、マニュアルを参照してください。https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS –

+1

「メモを記述する」を投稿してください。 – penguin

+0

@a_horse_with_no_name、フィールドが二重引用符で作成されているかどうかを知る方法はありますか? – McNets

答えて

0

psqlに接続して\d noteを実行する必要があります。それは、列が表示されている場合

は、あなたがALTER TABLE note RENAME COLUMN "noteKey" TO notekey;

  • は永遠にそれを照会するために二重引用符"を使用する列の名前を変更する二つのオプション
    1. を持っているいずれかの大文字KnoteKeyと呼ばれています。

    PostgreSQLでははありません。引用符の列名。これにより、それらは大文字と小文字が区別されます。クォートされていない場合、自動的にケースが低くなります。この

    select * from note where noteKey = 1 
    

    はおそらく、二重引用符で `ある "noteKeyを"`使用して列を作成し

    select * from note where "noteKey" = 1 
    
  • 関連する問題