0
다음 코드는 무엇이 잘못 되었습니까? 그것은 완벽하게 합법적 구문처럼 보이지만 내가 그것을 실행할 때 내가 얻을 :업데이트에서 변수를 설정하려고하면 작동하지 않습니다.
ERROR: syntax error at or near "conctest"
LINE 7: ret_id := (update conctest set id=id+1 where name = 'Billy ...
^
********** Error **********
ERROR: syntax error at or near "conctest"
SQL state: 42601
Character: 66
깨진 코드 :
DO $$
declare ret_id integer;
begin
ret_id := (update conctest set id=id+1 where name = 'Billy Bob' returning id);
DROP TABLE IF EXISTS tmpTable;
CREATE TEMPORARY TABLE tmpTable AS
select ret_id;
END $$;
select * from tmpTable;
이 작동 :
DO $$
declare ret_id integer;
begin
update conctest set id = id + 1 where name = 'Billy Bob';
ret_id := (select id from conctest where name = 'Billy Bob');
DROP TABLE IF EXISTS tmpTable;
CREATE TEMPORARY TABLE tmpTable AS
select ret_id;
END $$;
select * from tmpTable;
그건 그렇고을, 나는 업데이트를 복사 절을 작업 SQL 쿼리 창에서 가져 와서 수동으로 " returning id"
을 추가 했으므로 이상한 문자가 없습니다. 무엇이 잘못 되었나요?
TVMIA,
아담.
감사합니다, 바오 - 작동합니다. https://www.postgresql.org/docs/current/static/sql-update.html에서이 구문을 볼 수 없습니다. 나는 그것이 "output_expression"아래에 함축되어 있지만 아직도 조금 밀교 인 것 같아요. 당신이 그것을 모른다면, 당신은 개울에 있습니다. –
공정한 점 - 필요한 문서에 대한 링크를 추가했습니다. 변수에 값을 지정하는 것은 plpgsql 부분이고 링크는 SQL update 명령을위한 것입니다. –