2017-04-06 4 views
0
SELECT xyz.* 
FROM PUBLIC.DBLINK ('dbname=LiveDB port=5432 host=127.0.0.1 user=postgres 
password=root','SELECT dblink_build_sql_delete(''"folderstatus"'', ''1'', 1, 
''{"1"}'')') 
as xyz (id int); 

ERROR: invalid input syntax for integer: "DELETE FROM folderstatuslu WHERE 
id = '1'" 

여기에서 레코드를 삭제할 수 없습니다. 또한 "< ="조건을 추가하는 방법을 알아야하며 매개 변수를 전달해야합니다. 내 코드는 다음과 같습니다. 변수에 max (colum_value)를 선택하여 위의 쿼리에 전달하면 아래와 같이 삭제할 수 있습니다.dblink_build_sql_delete. <= 조건을 사용하여 데이터를 삭제할 수 있어야합니다.

DELETE FROM folderstatuslu WHERE id <= '1' --> (in the place of 1, I will 
pass a variable.) 

감사합니다. 단지 DBLINK 및 형식없는 이유

답변

1

? ..

t=# create table so43 (i int); 
CREATE TABLE 
t=# insert into so43 select 1; 
INSERT 0 1 
t=# select * from dblink('dbname = t',format('delete from so43 where i <= %s',1)) as row(result text); 
    result 
---------- 
DELETE 1 
(1 row) 
+0

야호! 잘 생겼어, 바소. 나중에 dblink_exec을 시도해 보았습니다. 그것은 나에게도 도움이되었습니다. 어쨌든 고마워. !! !! – user1720827