为什么不在 PostgreSQL 中嵌套模式?

San*_*erm -2 schema postgresql

我只使用 PostgreSQL,我这辈子再也不会切换数据库软件了,所以我不在乎与一些理论上的“SQL 标准”兼容,这些标准实际上并不存在。

我喜欢“模式”的想法,我很清楚它们是什么,但让我烦恼的一件事是你不能嵌套它们。因此,您只能有一个“类别”,任何“子类别”都必须是表名的一部分。

为什么不支持嵌套模式?既然“模式”无论如何都不在 SQL 标准中,为什么它们不完全采用并允许嵌套模式?

当然,我还没有真正需要它,但它在理论上和各种复杂情况下似乎很有用。

小智 5

为什么没有嵌套模式支持

因为 SQL 标准没有定义它们。是的,模式在 SQL 标准定义的,目录(这是另一个级别的命名空间)也是如此。

Postgres 的数据库大致等同于标准的目录,只是标准要求能够进行跨目录(=数据库)查询。

在标准中some_catalog.some_schema.some_table是一个有效的表引用,可以other_catalog.some_schema.some_table在同一个查询中使用。-一匹无名的马