0
我有一個包含下面的代碼PostgreSQL的存儲過程:簡化PostgreSQL的功能
IF something = TRUE THEN
SELECT id INTO some_id FROM some_table WHERE some conditions LIMIT 1;
RETURN QUERY SELECT * FROM some_table WHERE some conditions LIMIT 1;
ELSE
SELECT id INTO some_id FROM some_table WHERE some OTHER conditions LIMIT 1;
RETURN QUERY SELECT * FROM some_table WHERE some OTHER conditions LIMIT 1;
END IF;
DELETE FROM some_table where id = some_id;
有沒有一種方法來簡化上面的代碼?我想我們沒有什麼可以做的 關於IF
和ELSE
中的重複代碼,但是有沒有辦法避免每次都有的 ?是否有可能在some_id
中插入東西,而 RETURN QUERY
?
你可以用'返回查詢執行...'在新版本中,並用'格式創建一個動態的SQL字符串做'和字符串連接。 – 2014-09-25 14:12:45
您的'DELETE'語句永遠不會被執行,因爲您的'IF'分支都有'RETURN'語句。 – pozs 2014-09-25 17:43:06
@pozs:編號'RETURN QUERY'不會退出函數(不像'RETURN')。 – 2014-09-25 18:11:09