Postgresql中存儲過程(函數)調用存儲過程(函數)時應用注意的問題

在postgresql中咱們在執行存儲過程當中每每會使用select 存儲過程,可是若是存儲過程當中再調用 存儲過程時,就不能這樣用了,應該用perform 存儲過程,來看看官方文檔的說明sql

=====================================================================
session

執行一個沒有結果的表達式或者命令

有時候咱們但願計算一個表達式或者一個命令,可是卻丟棄其結果(一般由於咱們常常調用一些存在有用的反作用可是不存在有用結果值的函數)。 要在 PL/pgSQL 裏幹這件事, 你可使用PERFORM語句:函數

PERFORM query;

這條語句執行一個 query而且丟棄結果。 query 的寫法和你日常寫 SQL SELECT 命令是同樣的, 只是把開頭的關鍵字 SELECT 替換成 PERFORM。 PL/pgSQL 的變量和日常同樣代換到命令中。 一樣,若是命令生成至少一行,那麼特殊的變量 FOUND 設置爲真,若是沒有生成行,則爲假。post

注意: 咱們可能但願沒有INTO子句的SELECT也能知足這樣的須要, 可是目前能夠接受的惟一的方法是PERFORM。spa

一個例子:postgresql

PERFORM create_mv('cs_session_page_requests_mv', my_query);
相關文章
相關標籤/搜索