sql - 数据库表同义词/别名

标签 sql postgresql

场景如下:我有一组名为 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/

相关文章:

SQL Server - 查询根据每年的最后值计算加权平均值

sql - PostgreSQL - 在*所有模式*中授予对所有表(和 future 表)的选择

sql - 错误 : syntax error at or near "INSERT" , SQL 触发器,协议(protocol)表

node.js - AWS Lambda postgres 查询超时

sql - 我可以始终使用 INSERT ....ON DUPLICATE UPDATE 进行简单的更新/插入吗?

sql - 如何在 HSQLDB 中生成一个范围内的数字行列表?

SQL 简单连接,我很难过

c# - XElement.Parse 不允许循环

postgresql - 如何从 PostgreSQL 的 Azure 数据库更改 'LC_COLLATE' 和 'LC_CTYPE'?

debugging - 你如何使用 postgres 调试函数?