2017-07-27 58 views
1

我想知道是否可以在單個查詢中進行SET和SELECT。事情是這樣的:單個查詢中的SET和SELECT?

SET LOCAL search_path TO "1"; SET LOCAL ROLE "user"; SELECT * from posts; 

回答

2

你可以做這樣的事情:

with some_set as (
    select set_config('search_path', '"1"', true) 
) 
select * from posts; 

或只是set_config()呼叫W/O CTE SELECT,但一般不會幫你,因爲:

+0

Thanks @Nick!要明確,WITH確保它在'select * from posts'之前執行?或者甚至沒有? – Matt

+0

不,它不會:「在WITH中使用數據修改語句時,指定更新實際發生的順序是不可預知的。」 https://www.postgresql.org/docs/current/static/queries-with.html - 在我的實驗中,主'SELECT'在*'select set_config'之前執行*,這就是爲什麼我寫道它不會幫助你。 – Nick

+0

看起來像'select set_config('timezone',tzone,true),to_char(tstamp,mask)'按預期工作。 –