在PostgreSQL,我有隻需要調用dctUpdate
功能沒有做一個整體的SQL語句的表的更新規則,因爲SQL語句在實際進行功能。我知道調用函數的唯一方法是通過SELECT dctUpdate(windowId)
:PSQL:沉默函數調用的輸出,或稱它沒有SELECT
create or replace function infoUpdate(windowId in numeric) returns void as $$
begin
if windowId is null then
update info_timestamp set timestamp = now();
else
update info_timestamp set timestamp = now() where window_id = windowId;
end if;
end;
$$ LANGUAGE plpgsql;
create or replace rule info_update_rule as on update to some_table do also select infoUpdate(NEW.window_id);
然而,在命令行中,當規則被觸發,因爲我在some_table
更新一排,我從一個調用SELECT
條款無用輸出功能:
db=# update some_table set name = 'foobar' where window_id = 1;
infoupdate
-----------
(1 row)
UPDATE 1
有沒有辦法有info_update_rule
調用infoUpdate
功能,沒有它顯示虛輸出?
你真的要設置** **所有在整個表中的時間戳'NOW()'如果只是新的'window_id'是NULL?你需要支持哪些版本的PostgreSQL? –
@mu:是的,我的意思是設置NULL時的所有時間戳,並且我支持PostgreSQL 9.0和更高 – Fred