簡體   English   中英

Postgres:根據插入或刪除的新記錄更新表排序

[英]Postgres: Update table sorting on new record inserted or removed

每次添加(或刪除或更新)新記錄時,我都試圖按指定行自動對表進行排序。

為此,我創建了一個 function

CREATE FUNCTION pid_cluster_function() 
   RETURNS TRIGGER 
   LANGUAGE PLPGSQL
AS $$
BEGIN
   -- trigger logic
     
     cluster verbose public.pid using pid_idx;
END;
$$

並添加觸發器


CREATE trigger pid_cluster_trigger 
    after INSERT or update or DELETE on public.pid  
    FOR EACH row  
    execute procedure pid_cluster_function();

但是添加了一條記錄

INSERT INTO public.pid (pid,pid_name) VALUES ('111','new 111');

我收到了這樣的錯誤

SQL Error [55006]: ERROR: cannot CLUSTER "pid" because it is being used by active queries in this session
  Where: SQL statement "cluster verbose public.pid using pid_idx"
PL/pgSQL function pid_cluster_function() line 5 at SQL statement

這個錯誤的原因是什么? 或者是否可以通過其他方式添加或修改記錄來實現排序?

好的,謝謝大家,評論區。 我看我的想法不聰明 =)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM