我有一台来自机器的数据流,它存储在Postgresql数据库中。我需要删除各种不需要的字符并保留原始结果和新结果。例如,我在一个字段中有数据“34.5!*”或“17.9 P-”,并希望存储“34.5”或“17.9”。我想知道使用触发器调用一个过程来将数据写入减去不需要的字符到新字段...
答案 0 :(得分:2)
您可以使用正则表达式在触发器中轻松完成此操作,例如:
create or replace function clean_value()
returns trigger
language plpgsql
AS
$body$
begin
new.clean_column = regexp_replace(new.dirty_column, '[^0-9\.]', '', 'g');
return new;
end;
$body$
/
这会将输入dirty_column
的“干净”版本存储到列clean_column
中。