由于我们存储数据库的方式,我们为每个产品生命周期内发生的重要事件提供了表格:
我需要随时查找产品状态。为此,我需要查询架构中的所有表,并找到具有最新记录的记录。我知道可以通过合并所有表然后找到MAX时间戳来实现,但是我想知道是否还有更优雅的解决方案?
是否可以仅通过查询根模式或数据库来查询所有表?有没有办法遍历模式中的所有表并将其替换为FROM子句?
感谢您的帮助。
谢谢
答案 0 :(得分:1)
您可以编写一个存储过程,但是,IMO,只有定期更改表列表,这才值得付出努力(并且更加优雅)。 如果表列表是相对固定的,那么创建UNION语句可能是最优雅的解决方案,并且创建起来比较琐碎-如果您打算定期使用它,则只需将其创建为View。
我一直处理此类问题(为多个表创建相同的SQL)的方法是将表列表转储到Excel中,使用函数为第一个表生成SQL语句,然后为所有表名称,然后将所有这些语句连接到最终函数中。然后,您可以将这些文本粘贴回SQL编辑器中