【发布时间】:2011-02-07 18:52:44
【问题描述】:
我想要一个“updateinfo”表,以便在另一个表上记录每个更新/插入/删除操作。
我在 oracle 中写过这个:
CREATE TABLE updateinfo (rnumber NUMBER(10), tablename VARCHAR2(100 BYTE), action VARCHAR2(100 BYTE), UPDATE_DATE date)
删除触发器 TRI_TABLE;
创建或替换触发器 TRI_TABLE
删除、插入或更新后
开启演示
新旧如旧
每一行
开始
如果插入则
插入 updateinfo(rnumber,tablename,action,update_date) 值(rownum,'demo', 'insert',sysdate);
elsif 然后更新
插入 updateinfo(rnumber,tablename,action,update_date) 值(rownum,'demo', 'update',sysdate);
elsif 删除 then
插入 updateinfo(rnumber,tablename,action,update_date) 值(rownum,'demo', 'delete',sysdate);
如果结束;
-- 例外
-- 其他时候
-- 考虑记录错误,然后重新引发
-- 提高;
结束三表;
但是在检查 updateinfo 时,所有 rnumber 列都为零。 有没有办法检索正确的行号?
【问题讨论】:
-
从中得出的结论是,在数据的关系模型中,没有“行号”之类的东西——这个概念根本不适用。