このエラーを修正する方法はありますか、それともコードに欠けているものがありますか、私は学習postgresql
しておりtable inheritance and triggers
、2つのテーブルがtemporary_object table
ありpersons table
、個人テーブルは一時オブジェクトが持つすべてのプロパティを継承しています。私の問題は、これらを取得しようとid before updating
すると、同じレコードをチェックする人テーブルにトリガー関数を作成しましたtables
insert query
errors
ERROR: end of trigger procedure achieved without RETURN
CONTEXT: function PL / pgSQL muli_function ()
ERROR: end of trigger procedure achieved without RETURN
SQL-state: 2F005
Context: The PL / pgSQL muli_function ()
これは挿入クエリによるものです
INSERT INTO persons (id, time_create, time_dead, First_name, Last_name) values (1, '2011-10-07 15:25:00 EDT', '2011-10-07 3:25 PM EDT', 'sathiya', 'james');
これは私のトリガー関数であり、トリガー自体です
CREATE FUNCTION muli_function() RETURNS trigger AS '
BEGIN
IF tg_op = ''UPDATE'' THEN
UPDATE persons
SET time_dead = NEW.time_create
Where
id = NEW.id
AND time_dead IS NULL
;
RETURN new;
END IF;
END
' LANGUAGE plpgsql;
CREATE TRIGGER sofgr BEFORE INSERT OR DELETE OR UPDATE
ON persons FOR each ROW
EXECUTE PROCEDURE muli_function();
これらは私の2つのテーブルクエリです
CREATE TABLE temporary_object
(
id integer NOT NULL,
time_create timestamp without time zone NOT NULL,
time_dead timestamp without time zone,
PRIMARY KEY (id, time_create)
);
CREATE TABLE persons
(
First_Name text,
Last_Name text
)
INHERITS (temporary_object);