[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