2017-04-06 30 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.) 

感謝您的幫助。

回答

1

爲什麼不DBLINK和格式?..

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