web-dev-qa-db-ja.com

エラー:リレーションの列が存在しませんPostgreSQL、挿入クエリを実行できません

こんにちは私はテーブルに挿入しようとしていますtester3構文を使用すると失敗します

insert into tester3 (UN0, UN1) values ( 1, 'jishnu1');

だが

insert into tester3 values ( 1, 'jishnu1');

正常に動作しています。

mydb=# CREATE TABLE tester3
mydb-#    (
mydb(#     "UN0" integer,
mydb(#     "UN1" VARCHAR(40)
mydb(#    );
CREATE TABLE
mydb=# insert into tester3 (UN0, UN1) values ( 1, 'jishnu1');
ERROR:  column "un0" of relation "tester3" does not exist
mydb=# \d tester3
           Table "public.tester3"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 UN0    | integer               |
 UN1    | character varying(40) |

私は非常に些細な何かを見逃していると思います、他のいくつかの列名を試してみましたが、一部は正常に機能し、一部は機能しません。私は混乱しています。 PostgreSQLは列名に制限がありますか?機能する挿入クエリの最初の構文は機能しますか?


編集:

そして Frank Heikens が引用符なしで機能していた他の列名を指摘したようにlower case

小文字の列はPostgreSQL内の標準であり、引用符なしでも機能します

13
Jishnu Prathap

二重引用符で列を定義する場合、列を参照するときにそれらを使用する必要があります。

insert into tester3 ("UN0", "UN1")
     values ( 1, 'jishnu1');

CREATE TABLEステートメントの列名から二重引用符を削除することをお勧めします。

16
Gordon Linoff

列名に二重引用符を使用してこれを試してください

insert into tester3 ("UN0", "UN1") values ( 1, 'jishnu1');
6
Ameya Deshpande