raise函數
在PostgreSQL中,該函數用於打印字符串,類似於Java中的System.out.println()
,Oracle中的dbms_output.put_line()
。
用法如下:
raise notice 'My name is %, I am a %.', 'Lewis', 'coder';
以上sql會在控制台輸出My name is Lewis, I am a coder.
。如果是在DBeaver里使用該函數,則會在output
的tab里輸出字符串。
raise后面的notice
是級別,一共有debug/log/info/notice/warning/exception
這些級別,可以任意指定一個級別。有些類似於Java里的日志框架,比如Log4j2之類的。
接着級別后面的是要輸出的字符串參數,用一對單引號包括起來。這個字符串支持占位符的寫法,也就是%
這個字符。如果在字符串里使用了這個%
,那么會自動使用字符串參數后面的參數來替換掉這里的%
。有多少個占位符,就需要在第一個字符串參數后面加上多少個對應的參數。
這個占位符輸出的用法,也和Log4j2類似。
由raise打印出來的信息可以輸出到服務端日志,也可以輸出到客戶端,亦或者同時輸出到二者。這個是由log_min_messages
和client_min_messages
兩個參數控制的,這兩個參數在數據庫初始化時用到。