剛開始接觸的PostgreSQL觸發一個文件,我想知道如果以下是可能的: 我有一個表,其中一列中存儲的文件系統路徑的圖像文件。例如,每個記錄的「img_path」字段可能包含諸如「c:\ images \ a_great_image.jpg」之類的東西,或類似的東西。PostgreSQL的觸發器,移動文件系統上的
當數據庫用戶在該領域的變化值,是有可能,在PostgreSQL觸發器功能可以照顧(至少嘗試),以「移動」該文件將其新指定的位置?
非常感謝您的建議。
剛開始接觸的PostgreSQL觸發一個文件,我想知道如果以下是可能的: 我有一個表,其中一列中存儲的文件系統路徑的圖像文件。例如,每個記錄的「img_path」字段可能包含諸如「c:\ images \ a_great_image.jpg」之類的東西,或類似的東西。PostgreSQL的觸發器,移動文件系統上的
當數據庫用戶在該領域的變化值,是有可能,在PostgreSQL觸發器功能可以照顧(至少嘗試),以「移動」該文件將其新指定的位置?
非常感謝您的建議。
是的。這是可能的。以plpython爲例。在觸發器中使用它。
CREATE OR REPLACE FUNCTION move_file(old_path text, new_path text)
RETURNS boolean AS
$$
import shutil
try:
shutil.move(old_path, new_path)
return True
except:
return False
$$
LANGUAGE 'plpythonu' VOLATILE;
是的,你可以做到這一點,但要記住只有在數據庫中使用數據時才能進行事務處理。也就是說文件在文件系統上,所以如果由於某種原因失敗了,你就無法回滾它。只是要記住。 – Kuberchaun 2012-02-12 23:44:43