2016-10-05 20 views
2

私はJOOQ for javaをpostgresql db接続に使用しています。このクエリを実行しようとしています。Postgres:または "as"の構文エラー

insert into "public"."mission_batches" as "MB" 
    ("micro_task_id", "is_active", "created_at", "updated_at") 
values 
    ('7e1cc9e8-fc11-409b-865e-3bf08e6ca924', false, timestamp '2016-10-05 21:47:13.061', timestamp '2016-10-05 21:47:13.061') returning "MB"."id", "MB"."micro_task_id", "MB"."is_active", "MB"."created_at", "MB"."updated_at" 

しかし、私はそれは私のローカルDB [9.5]で作業しているDB

org.jooq.exception.DataAccessException: SQL [insert into "public"."mission_batches" as "MB" ("micro_task_id", "is_active", "created_at", "updated_at") values (?, ?, cast(? as timestamp), cast(? as timestamp)) returning "MB"."id", "MB"."micro_task_id", "MB"."is_active", "MB"."created_at", "MB"."updated_at"]; 
ERROR: syntax error at or near "as" 
    Position: 40 

からエラーを取得しています。テストサーバー[9.4]では、このエラーが発生しています。どこを修正するべきですか? Java側またはPG側? 。returning句の列はとにかく挿入テーブルを参照するので、あなたは同じように簡単にそれなしで行うことができます(9.4's documentationPostgres 9.5's documentationを比較し、あなただけのPostgres 9.5で追加されたに挿入しているテーブルをエイリアシング

答えて

3

insert into "public"."mission_batches" 
    ("micro_task_id", "is_active", "created_at", "updated_at") 
values 
    ('7e1cc9e8-fc11-409b-865e-3bf08e6ca924', false, 
    timestamp '2016-10-05 21:47:13.061', timestamp '2016-10-05 21:47:13.061') 
returning 
    "id", "micro_task_id", "is_active", "created_at", "updated_at" 
+0

9.4では挿入のエイリアシングのみがサポートされていますか?このクエリは完全に で実行されているため、「U」。「id」、「U」。「username」、「E」。 「U」の「E」「E」「E」「E」「U」の「E」「E」「abc @ xyz.com ' – theGamblerRises

+1

@theGamblerRisesええ、選択のエイリアシング長い間そこにいた... – Roberto

+0

ああ、大丈夫。次に、コードを変更して、すべてのデバイスで同じバージョンを確認します。ありがとう – theGamblerRises

関連する問題