首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建记录历史表-如何在创建时创建记录?

创建记录历史表-如何在创建时创建记录?
EN

Stack Overflow用户
提问于 2016-07-25 21:33:30
回答 1查看 758关注 0票数 0

对于一个项目,我希望有一个“历史”表来记录我的记录。对于这个(示例)系统,我有两个表:

代码语言:javascript
复制
RECORDS
    ID
    NAME
    CREATE_DATE

RECORDS_HISTORY
    ID
    RECORDS_ID
    LOG_DATE
    LOG_TYPE
    MESSAGE

当我在RECORDS中插入一条记录时,如何在RECORDS_HISTORY中自动创建一个关联条目,其中RECORDS_ID等于RECORDS中新插入的ID

我目前在RECORDS中的ID上有一个序列,可以在插入新行时自动递增,但是我不确定如何在RECORDS_HISTORY中为每个新创建(未更新)的记录预先填充如下所示的记录。

代码语言:javascript
复制
INSERT INTO RECORDS_HISTORY (RECORDS_ID, LOG_DATE, LOG_TYPE, MESSAGE) VALUES (<records.id>, sysdate(), 'CREATED', 'Record created')

如何在创建时创建此关联的_HISTORY记录?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-25 23:07:24

你没有提到你正在使用的数据库。我猜是先知吧。最明显的答案是:使用"On Insert触发器“。您甚至可以从insert语句中将ID (序列)返回到表记录中。这种解决方案的缺点:触发器是某种“隐藏”代码,可以减慢大量插入的处理速度,并且在存储部分冗余的数据时消耗双倍磁盘空间。如果记录被更新或删除了怎么办?这种情况会发生吗?你是否也需要注意这一点?最大的问题是:你的目标是什么?有经过验证的历史化概念。看看这个:https://en.wikipedia.org/wiki/Slowly_changing_dimension

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38569194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档