是否有任何免费工具或方法可以了解数据库表中的变化?
答案 0 :(得分:5)
您可以在更新前复制一份
CREATE TABLE t2 AS SELECT * FROM t1
运行您的更新
然后显示差异
用它来显示更新:
SELECT * FROM t1
MINUS
SELECT * FROM t2
使用它来显示删除:
SELECT * FROM t2
WHERE NOT EXISTS(SELECT 1 FROM t1 WHERE t1.primary_key = t2.primary_key)
最后这个检查记录总数是否相同
SELECT count(*) FROM t1
SELECT count(*) FROM t2
注意:如果有其他会话更新t1,可能很难发现您的更新。
答案 1 :(得分:0)
我过去曾经非常成功地使用过Toad(对于Schema和Data)。我发现它也与Oracle兼容。
答案 2 :(得分:0)
尝试 liquibase ,它为数据库提供版本控制机制。
答案 3 :(得分:0)
触发器确实应该避免但是......
如果您处于非生产环境中,则可以设置触发器以执行对新表的记录。你需要5个这样的字段:
LogTime DateTime;
Table Varchar2(50); -- Table Name
Action Char; -- Insert, Update or Delete
OldRec Blob; -- Concatenate all your field Values
NewRec Blob; -- Ditto
美丽之处在于,您可以将给定时间跨度内的所有OldRecs和NewRecs选择为文本文件。比较工具将通过突出显示您的更改来帮助您。
任何帮助?