【发布时间】:2019-04-03 10:20:15
【问题描述】:
创建一个清晰的日志过程,每天删除并插入备份表,我需要做的是在备份表达到一定数量的行后,我希望我的工作(过程)创建一个新表相同的字段。
所以我有一个表配置,其中包含我需要备份的表,并且我有一个名为 pre_bck 的列,它具有我希望我的备份表具有的名称。
所以我想尝试创建一个从 'column'+the sequence number 创建表的过程
create table 'column_name'+sequence_id as select * from xyz where 1=0;
例如,如果表名是 abc 并且序列 ID 是 3,那么表名就是 abc3
我不知道我是否清楚,至于我假装实现什么,任何帮助将不胜感激。
【问题讨论】:
-
甲骨文 MySQL。请不要垃圾邮件标记各种 RDBMS。
-
你为什么要这样做?我能想到的唯一原因是更容易删除旧数据 - 那么您是否考虑过对单个表进行分区?但是您正在删除和插入...在创建新表后的第二天如何工作,是应该删除所有匹配的表,还是删除原始表并删除其他表?无论如何,这对我来说似乎是一个奇怪的设置......
-
基本上我们希望将所有数据保留在备份中,一段时间后我们希望导出我们创建的那些表。我们的想法是始终让我们的原始表中的记录很少,以使我们的应用程序运行得更快。该方法是我被要求创建的方法。
-
@AlexPoole - 分区是企业版许可证的额外收费。很多地方没有这个选项。但是,自 11.2.0.4 以来,闪回数据归档一直是普通旧 EE 的一部分,这将是归档需求的更好解决方案。
-
“我需要做的是在备份表达到一定行数后,我希望我的工作(过程)创建一个具有相同字段的新表。” 。那么你怎么知道哪个表有任何给定的行呢?如果您无法检索数据,那么它就不是任何有意义的备份。
标签: sql oracle plsql oracle11g