首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要在PostgreSQL中创建空表(没有行,没有列)

为什么要在PostgreSQL中创建空表(没有行,没有列)
EN

Stack Overflow用户
提问于 2013-08-02 19:17:25
回答 4查看 3.9K关注 0票数 14

在回答问题时,我了解到您可以在PostgreSQL中创建空表。

代码语言:javascript
复制
create table t();

这有什么真正的用例吗?为什么要创建空表?因为你不知道它会有哪些列?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-02 20:38:15

从我的角度来看,这些都是列少表的好处。它们可能更多地属于温暖和模糊的范畴。

  1. 在向表中添加任何用户定义的列之前,创建一个表的一个实际用途是,它允许您在创建新系统时快速迭代,或者一般只进行快速开发迭代。
  2. 更多的1,但可以让你存根表,您的应用程序逻辑或过程也可以参考,即使列还没有到位。
  3. 我可以看到,在一个案例中,你在一家大公司拥有大量的开发人员。也许你想在你的工作完成之前提前几个月预定一个名字。只需将新的无列表添加到生成中即可。当然,他们仍然可以高高在上,但在他们提出其他计划之前,你也许能赢得这样一个论点,即你已经在使用它了。有点边缘,但这是个有效的好处。

所有这些都很方便,当我不在PostgreSQL工作时,我会想念它们。

票数 7
EN

Stack Overflow用户

发布于 2013-08-04 23:47:00

我不知道在PostgreSQL中包含它的确切原因,但是零列表--或者更确切地说是零属性关系--在关系代数理论中起着作用,而关系代数是SQL (广义)的基础。

具体来说,没有元组的零属性关系(在SQL术语中,没有列和没有行的表)是零或假的关系等价物,而只有一个元组(SQL: no列,但一行,据我所知,在PostgreSQL中是不可能的)的关系是true或1。休·达文( Hugh Darwen )是关系理论的直言不讳的倡导者,也是SQL的批评者,他将这两种语言分别称为"Table“和"Table”。

在正规代数中,x + 0 == xx * 0 == 0,而x * 1 == x;其思想是在关系代数中,表Dum和Table可以用作连接、并等的相似基元。

PostgreSQL内部将表(以及视图和序列)称为“关系”,因此尽管它是围绕着实现这种纯关系代数所没有定义的实现而设计的,但它的设计或历史中也可能存在这样的元素。

票数 5
EN

Stack Overflow用户

发布于 2013-08-02 19:28:38

它不是空表-仅为空结果。PostgreSQL行包含一些不可见(默认情况下)列。我不确定,但这可能是黑暗时代的产物,当时Postgres遭到了反对,Relational数据库和PG支持的语言POSTQUEL。这个空表可以作为类层次结构中的抽象祖先工作。

系统列列表

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18024585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档