2017-03-10 3 views
2

나는 열 location에 파일의 폴더가있는 테이블을 가지고 있습니다. '/home/ubuntu/test'name 열에는 파일 이름이 있습니다. 'test1.png'.두 개의 열을 연결하고 그 중 하나를 postgresql의 결과로 바꿉니다.

location 열을 전체 경로로 바꾸고 싶습니다. 예 : '/home/ubuntu/test/test.png'.

나는이 시도 :

UPDATE experiment_11.microscope_image_files 
SET location=(SELECT concat_ws('/', location::text, name::text) 
FROM experiment_11.microscope_image_files); 

을하지만, 나는 다음과 같은 오류 얻을 :

ERROR: more than one row returned by a subquery used as an expression

+0

'UPDATE experiment_11.microscope_image_files SET location = concat_ws ('/', 위치 :: 텍스트, 이름 :: 텍스트)' – barbsan

답변

1

당신은 하위 쿼리를하지 않으려합니다.

UPDATE experiment_11.microscope_image_files SET 
location = location || '/' || name 

오류가 1 개 이상의 행을 반환하는 하위 쿼리에 의해 발생되었다가 (실제로는 모든 행을 반환했다)하지만, (당신처럼) 표현으로 사용했을 때 대신에, 단지 사용 0 또는 1 행을 반환해야합니다.

+0

쿨! 감사! 그것은 도왔다! –