作者wangks (欧巴桑的欧巴)
看板Database
标题[SQL ] 如何新增纪录时直接把资料搬到另一TABLE?
时间Thu Sep 4 21:26:08 2014
资料库名称: 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://webptt.com/cn.aspx?n=bbs/Database/M.1409837171.A.166.html
1F:推 TeemingVoid: 请改用 instead of 型的 trigger 09/04 23:37
2F:→ wangks: 试出来了, 用"RETURN NULL;"就好了 09/05 02:26