我有很多SQL Server开发经验,我正在几个项目上试用Postgres.我刚刚编写了一个带有一些我习惯于在t-SQL查询中包含的注释的视图,并且我注意到,当我调出该视图的定义时,postgres使用了我的SQL代码并编写了它自己的视图版本,没有我的注释.

这只是pgAdmin的事情,还是在幕后引擎中发生的事情?在您下次想要回来编辑视图/过程/函数等时,给自己留下future 的开发人员注释等的最佳实践是什么?

我可以用我编写的代码保存.sql文件,但我真的想从对象资源管理器树中访问该版本,而不是go 查找旧的.sql文件……也许我错过了一些简单的东西?

推荐答案

这是PostgreSQL中视图工作方式的结果.PostgreSQL不存储您用来定义视图的字符串,而是存储查询解析树.因此,所有格式和注释都将丢失.

数据库元数据不是存放源代码的正确位置.使用源代码版本控制系统.对于简单的视图定义;对于其他数据库对象,像Liquibase这样的工具会有所帮助.

Postgresql相关问答推荐

环境变量在Bash应用程序中没有出现

函数返回查询执行plpgsql时不存在列

EF Core和npgsql连接池已被耗尽

需要用 jack/pgx 更新 golang 中复合类型的 PSQL 行

使用正则表达式计算 SQL 查询中 WHERE 过滤器的数量

为什么 postgresql 可以在这个查询中高效地使用索引?

我可以在 Ruby on Rails 上编写 PostgreSQL 函数吗?

我可以使用 Rails 将数组存储在 hstore 中吗

包含受先前 DELETE 影响的行数的变量?

PostgreSQL 在 mySQL 中的 date_trunc

PostgreSQL - jsonb_each

如何将 DELETE 的返回值插入到 postgresql 中的 INSERT 中?

SQL:多次重复结果行,并对行进行编号

如何使用 Django Migrations 重新创建已删除的表?

Postgres:为 CAST 失败定义一个默认值?

PostgreSQL 中是否有类似 zip() 函数的东西,它结合了两个数组?

如何在Postgres中分组并返回总和行

学习 PL/pgSQL 的好资源?

psql 将默认 statement_timeout 设置为 postgres 中的用户

在 PostgreSQL 中使用 CASE 一次影响多个列