[SQL ] 如何新增紀錄時直接把資料搬到另一TABLE?

作者: wangks (歐巴桑的歐巴)   2014-09-04 21:26:08
資料庫名稱: PostgreSQL
資料庫版本: 9.1
內容/問題描述:
我有個TABLE會一直接收設備的即時資訊 (以下稱"table_a"),
但有時會因為太晚才傳上來變得不即時
目前都是事後用人工方式
把那些不即時的紀錄另一個TABLE去 (以下稱"table_b")
我現在想要在 table_a 上寫一個Before INSERT Trigger
在INSERT前先檢查是否資料不符合需要
是, 則在 table_b 新增這筆紀錄, 而 table_a 不寫入
我的寫法是
IF <檢查不通過) THEN
INSERT INTO table_b (col1,col2,...) VALUES (NEW.col1,NEW.col2,...)
RAISE EXCEPTION '...';
END IF;
問題是
這樣子只是會放棄寫到 table_a, 但 table_b 一樣不會寫進去
有試過把 "RAISE EXCEPTION '...';" 拿掉,
則 table_b 會寫, 但 table_a 也會寫
要怎麼做才對?
謝謝大家
作者: TeemingVoid (TeemingVoid)   2014-09-04 23:37:00
請改用 instead of 型的 trigger
作者: wangks (歐巴桑的歐巴)   2014-09-05 02:26:00
試出來了, 用"RETURN NULL;"就好了

Links booklink

Contact Us: admin [ a t ] ucptt.com