Postgres:"as" 处或附近的语法错误
Postgres : syntax error at or near "as"
我正在使用 JOOQ java 到 postgresql 数据库连接。它正在尝试 运行 此查询。
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"
但是我从数据库中收到错误
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.5] 一起使用。在测试服务器 [9.4] 上,它抛出此错误。我应该在哪里寻找修复? Java边还是PG边?
仅在 Postgres 9.5 中添加了要插入的 table 的别名(比较 Postgres 9.5's documentation to 9.4's documentation。因为 returning
子句中的列引用插入的 table 无论如何,没有它你也可以轻松做到:
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"
我正在使用 JOOQ java 到 postgresql 数据库连接。它正在尝试 运行 此查询。
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"
但是我从数据库中收到错误
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.5] 一起使用。在测试服务器 [9.4] 上,它抛出此错误。我应该在哪里寻找修复? Java边还是PG边?
仅在 Postgres 9.5 中添加了要插入的 table 的别名(比较 Postgres 9.5's documentation to 9.4's documentation。因为 returning
子句中的列引用插入的 table 无论如何,没有它你也可以轻松做到:
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"