2017-09-14 3 views
0

これは私を狂ってしまいます。次のクエリは、ローカルで完全に正常に動作しますが、私はトラヴィス-CI上でそれをテストするとき失敗し、エラーを投げている:PostgreSQLのクエリはローカルで動作しますが、Travis CIでは失敗します

java.lang.RuntimeException: org.postgresql.util.PSQLException: ERROR: syntax error at or near "select" Position: 39

うまくいけば、誰かが私にはできないものを見ることができます。ここで

は私のテーブルです:ここでは

+----------+---------------+ 
| ways     | 
+----------+---------------+ 
| way_id | bigint  | 
| node_ids | bigint array | 
| rep_lat | float(9)  | 
| rep_lon | float(9)  | 
+----------+---------------+ 

+---------+-----------+ 
| nodes    | 
+---------+-----------+ 
| node_id | bigint | 
| lat  | float(9) | 
| lon  | float(9) | 
+---------+-----------+ 

は私のクエリです:

update ways 
set (rep_lat, rep_lon) = 
    ( 
    select lat, lon 
    from nodes 
    where nodes.node_id = ways.node_ids[array_length(ways.node_ids, 1)/2] 
) 

答えて

0

奇妙な、何らかの理由で、この形式は許容できるものであった:

UPDATE ways 
SET rep_lat=subq.lat, rep_lon=subq.lon 
FROM (SELECT lat, lon, node_id FROM nodes) as subq 
WHERE subq.node_id = ways.node_ids[array_length(ways.node_ids, 1)/2] 
関連する問題