我在oracle 9数据库中有一系列的历史表。 History_table_00包含上个月的数据,History_table_01包含前一个月的数据,History_table_02包含前一个月的数据。下个月,History_table_02会自动重命名为history_table_03,history_table_01重命名为history_table_02,history_table_00重命名为history_table_01,并且将创建一个新的history_table_00以收集最新的历史记录(我真的很希望我有道理)。select语句中的动态表名
无论如何,我需要编写一个select语句来动态选择所有的历史表。我希望这不会是太复杂了,因为他们都有着相同的名字,只是顺序号附加这样我就可以发现与表名:
select table_name from all_tables where table_name like 'HISTORY_TABLE_%';
我对每个表的标准查询将是:
select id, name, data_column_1, data_column_2 from history_table_%;
什么我必须做完成编写SQL语句,将始终从所有历史记录表中没有我选择需要去每个月并添加新表的目标是什么?感谢你们提供的任何东西。
正确的解决方案是只有一个表格,并为'Year'添加一列作为主键的第一部分。 –
@Joel Coehoorn--也许这是一个穷人的分区解决方案。你永远不会知道。 – haki
@haki对主键的预计年份与大多数用例的单独表格具有相似的性能特征 –