Envers:如何在 *_AUD 表中添加新列(不在 REVINFO 表中)

Posted

技术标签:

【中文标题】Envers:如何在 *_AUD 表中添加新列(不在 REVINFO 表中)【英文标题】:Envers: How to add a new column in *_AUD table (not in REVINFO table) 【发布时间】:2015-12-08 12:24:15 【问题描述】:

对于每个被审计的实体,envers 创建一个带有 *_AUD 后缀的表。

每个表都有 两个 额外的列(REVrevtype)。

我只想动态创建一个新的一列来满足我的额外需求。

Obs:手动创建新列,因为所有实体中的新字段不适合我。

这可能吗?

【问题讨论】:

有什么问题?为什么alter table mytable add column mycolumn 不可接受? @DraganBozanovic 我想做类似@RevisionEntity 之类的事情,但要在审核实体表中添加动态字段/列,而不是在 REVINFO 表中。 【参考方案1】:

您可以尝试创建一个脚本并在此基础上添加您想要的列:

spool c:\osama.log

select  'audit'||' ' || 'alter' || 'table' || ' '|| OWNER|| '.'||' '|| OBJECT_NAME|| ' '|| 'by access;' where owner='<user-name>';

Spool Off ;

通过此链接查看页面的其余部分:https://community.oracle.com/thread/2455981

【讨论】:

以上是关于Envers:如何在 *_AUD 表中添加新列(不在 REVINFO 表中)的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate Envers - 添加历史数据

Hibernate Envers 修改了标志行为

Spring Boot 和 Hibernate Envers:手动更新 AUD-Table

如何将 CSV 导出复制到添加了新列的 Redshift 表中?

如何使用 jdbc pyspark python 在现有表中添加新列?

Hibernate envers如何向审计表添加字段