有个表 trans
字段 userid int; transdate datetime; price int;
当插入trans时,如果select count(*) from trans where userid=插入的userid 超过20条记录,
则根据transdate排序,删除最早的那一条记录
这个触发器如何写?
...全文
1411打赏收藏
触发器编写:保留最新20条记录
有个表 trans 字段 userid int; transdate datetime; price int; 当插入trans时,如果select count(*) from trans where userid=插入的userid 超过20条记录, 则根据transdate排序,删除最早的那一条记录 这个触发器如何写?
CREATE OR REPLACE TRIGGER TRG_TEST_AFTER_INSERT
BEFORE
INSERT
ON TEST
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
DECLARE
row_count INTEGER;
BEGIN
--
SELECT COUNT (*)
INTO row_count
FROM TEST;
IF row_count > 20
THEN
DELETE TEST
WHERE transdate = (SELECT MIN (transdate)
FROM TEST);
END IF;
END trg_test_after_insert;