Postgresql - 使用存储过程或触发器从数据流中删除不需要的字符?

时间:2011-11-17 12:52:33

标签: postgresql stored-procedures triggers

我有一台来自机器的数据流,它存储在Postgresql数据库中。我需要删除各种不需要的字符并保留原始结果和新结果。例如,我在一个字段中有数据“34.5!*”或“17.9 P-”,并希望存储“34.5”或“17.9”。我想知道使用触发器调用一个过程来将数据写入减去不需要的字符到新字段...

1 个答案:

答案 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中。