資料庫名稱: 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 也會寫
要怎麼做才對?
謝謝大家