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

看板Database作者 (歐巴桑的歐巴)時間11年前 (2014/09/04 21:26), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
資料庫名稱: 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

09/04 23:37, , 1F
請改用 instead of 型的 trigger
09/04 23:37, 1F

09/05 02:26, , 2F
試出來了, 用"RETURN NULL;"就好了
09/05 02:26, 2F
文章代碼(AID): #1K26Xp5c (Database)