场景如下:我有一组名为 job_listings_yyyyMMdd
的表。每天,都会创建一个使用上述命名约定的新表,并用当天的职位列表进行填充。
填充该表后,将启动一个过程来转换表中的数据,以便前端应用程序可以使用它。
所以,随着时间的推移,我有一组表,比如
job_listings_20151226
,
job_listings_20151227
,
job_listings_20151228
,
...
它们都具有完全相同的表结构,但每个表只包含当天的工作列表。
我想做的是从为前端提供此数据的服务中引用一个名为 job_listings
的表。理想情况下,我的日常流程会创建新的一天的表,在所有处理完成并且当天的数据已准备好提供服务后,流程将同义词/别名(即 job_listings
)更改为指向当天新填充和处理的表。
这个想法是数据刷新之间没有任何接缝。 Oracle 曾经有一个名为同义词的概念,但我很难弄清楚如何使用 PostgreSQL 做到这一点。
最佳答案
不同的数据库系统有不同的联邦和别名方法。但我认为您想要的是在任何 SQL 系统中都可用的东西 -- View 。
CREATE VIEW MOST_RECENT_JOB_LISTINGS AS
SELECT * FROM job_listings_20151228
创建新表后,每天更改此 View 的定义即可。
关于sql - 数据库表同义词/别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34498425/