gpt4 book ai didi

sql - 如何防止 PostgreSQL 更改我格式良好的 SQL 定义

转载 作者:行者123 更新时间:2023-11-29 13:28:17 27 4
gpt4 key购买 nike

我注意到,在为 PostgreSQL 编写 SQL 之后,当我稍后查看 SQL 定义时,数据库似乎改变了我格式化 SQL 的方式。例如,我的前导逗号被移到了后面,我的制表符被改变了,等等。

有什么办法可以避免这种情况吗?

最佳答案

这是误会。 Postgres 不会“改变格式”。原始 SQL 字符串根本不存储

查询被解析和重写,并根据查询的类型采取行动。 例如,当您创建 View 时,结果存储在系统目录中,主要是pg_classpg_rewrite .

您还必须知道,所有标识符都是在创建数据库对象时解析的,采用当前的 search_path和可见性考虑(早期绑定(bind))。如果环境以任何方式发生变化,相同的查询字符串以后可能意味着不同的东西。

您稍后看到的是根据这些条目构建的重新设计版本。有一些built-in functions对此有所帮助,但这在很大程度上取决于客户如何格式化逆向工程的 SQL 代码。

Functions是一个异常(exception)(部分)。函数主体作为字符串传递并保存原样,完全按照传递的方式进行,(目前)仅对对象进行表面语法测试和验证。例如,如果你想要一种快速的方法来“保存”查询,包括它在 Postgres 中的格式,你可以使用 PL/pgSQL 函数。

一般的做法是有一个独立的代码库,比如@Mike already suggested - 或者不要太在意格式。

关于sql - 如何防止 PostgreSQL 更改我格式良好的 SQL 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29358072/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com