inheritを使用すると、メインテーブルのトリガーが作成され、変更が子テーブルで発生します。
これは、挿入トリガーの例です。私はメインテーブルに挿入するだけで、avl
と同じ更新または削除を確認できます。私はちょうど
を作っこの
question上
CREATE OR REPLACE FUNCTION avl_db.avl_insert_trigger()
RETURNS trigger AS
$BODY$
BEGIN
IF (NEW.event_time >= '2017-06-01 00:00:00' AND NEW.event_time < '2017-06-02 00:00:00') THEN
INSERT INTO avl_db.avl_20170601 VALUES (NEW.*);
ELSEIF (NEW.event_time >= '2017-06-02 00:00:00' AND NEW.event_time < '2017-06-03 00:00:00') THEN
INSERT INTO avl_db.avl_20170602 VALUES (NEW.*);
ELSEIF (NEW.event_time >= '2017-06-03 00:00:00' AND NEW.event_time < '2017-06-04 00:00:00') THEN
INSERT INTO avl_db.avl_20170603 VALUES (NEW.*);
ELSEIF (NEW.event_time >= '2017-06-04 00:00:00' AND NEW.event_time < '2017-06-05 00:00:00') THEN
INSERT INTO avl_db.avl_20170604 VALUES (NEW.*);
ELSEIF (NEW.event_time >= '2017-06-05 00:00:00' AND NEW.event_time < '2017-06-06 00:00:00') THEN
INSERT INTO avl_db.avl_20170605 VALUES (NEW.*);
....
ELSE
RAISE EXCEPTION 'Date out of range.';
END IF;
RETURN NULL; -- avoid insert in the main table
詳細