postgreSQL v12触发器的复制支持

postgreSQL v12触发器的复制支持,postgresql,triggers,Postgresql,Triggers,我们有一对触发器和函数,在psql数据库中使用的时间最长。基本上,每当主表中有一条新记录时,就会调用触发器,并且每一行都会分别插入到每月分区中。以下是触发功能: CREATE TRIGGER partition_mic_teams_endpoint_trg1 BEFORE INSERT ON "mic_teams_endpoint" FOR EACH ROW EXECUTE PROCEDURE trg_partition_mic_teams_endpoint('mo

我们有一对触发器和函数,在psql数据库中使用的时间最长。基本上,每当主表中有一条新记录时,就会调用触发器,并且每一行都会分别插入到每月分区中。以下是触发功能:

CREATE TRIGGER partition_mic_teams_endpoint_trg1 
  BEFORE INSERT ON "mic_teams_endpoint" 
FOR EACH ROW EXECUTE 
PROCEDURE trg_partition_mic_teams_endpoint('month');
我们的函数基于每行中的时间戳字段创建每月分区

我有两个问题:

  • 列表项即使我尝试将一组行从CSV复制到主表中,此触发器/函数是否将分别插入每一行?这有效吗

  • 如果是这样,是否可以支持将数据复制到分区而不是插入

谢谢


注意:如果我没有为回答提供足够的信息,我很抱歉

是,将分别为每行调用行级触发器,这将使
复制
的速度大大降低

您可以尝试的一件事是使用转换表的语句级
AFTER
触发器,以便

INSERT INTO destination SELECT ... FROM transition_table;
这应该更快,但你应该测试它以确定

有关详细信息,请参阅