簡體   English   中英

postgres 9.3數據庫觸發器創建

[英]postgres 9.3 database trigger creation

我正在嘗試創建一個觸發器,該觸發器在更新一個表時,運行查詢並用結果更新另一個表。

我陷入困境的地方是將查詢結果分配給正確鍵入的變量。

當前錯誤是數組必須以“ {”或其他維信息開頭,但是當我進行調整時,我得到了其他錯誤

請在下面查看我當前的代碼,讓我知道最佳方法

非常感謝您的幫助,因為我花了大量時間咨詢Google。

CREATE TYPE compfoo AS (ownership character varying (50), count INT);

CREATE OR REPLACE FUNCTION test1_update() RETURNS trigger AS
$$

DECLARE
largest_owner   character varying (50);
temp_result compfoo[];

BEGIN

SELECT ownership, count(*) INTO temp_result
  FROM austpoly2 
  WHERE ownership IS NOT NULL
  group by ownership 
  ORDER BY count DESC
  LIMIT 1;


largest_owner = temp_result[0].ownership;

UPDATE public.states
   SET ownership= largest_owner
 WHERE statecode='1';

RETURN NEW;

  END;

$$
LANGUAGE plpgsql;

CREATE TRIGGER test1_update_trigger
BEFORE UPDATE ON austpoly2
FOR EACH ROW EXECUTE PROCEDURE test1_update();

謝謝a_horse with_no_name

您的回應與

temp_result    compfoo%ROWTYPE;

解決了這個問題

暫無
暫無

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

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