是否保证Postgres表名在模式中是唯一的?在数据库中?

时间:2018-08-07 17:18:16

标签: sql postgresql schema

在编写Postgres查询时,我省略了架构信息,并且查询工作正常。如果查询在单个架构内运行,可以省略架构信息吗?这会咬我吗?

例如

SELECT * FROM version;

相反

SELECT * FROM schema.version;

1 个答案:

答案 0 :(得分:1)

表名称在模式中是唯一的。对于整个数据库,它们绝对不是不是唯一的。引用the documentation

  

相同的对象名称可以在不同的模式中使用而不会发生冲突;例如,schema1myschema都可以包含名为mytable的表。

话虽如此,通常显式指定架构很麻烦,而且只是多余的。除非明确需要使用模式,否则可以安全地省略它。