看板 Database 關於我們 聯絡資訊
資料庫名稱: 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 也會寫 要怎麼做才對? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.22.194.114 ※ 文章網址: http://www.ptt.cc/bbs/Database/M.1409837171.A.166.html
TeemingVoid: 請改用 instead of 型的 trigger 09/04 23:37
wangks: 試出來了, 用"RETURN NULL;"就好了 09/05 02:26