Postgres 有一个名为的设置extra_float_digits
。它决定了当您在数据库中选择一个浮点数时返回多少位数字。它默认为 0,并且仅适用于当前连接。如果没有设置为 3,当您选择之前插入的值时信息就会丢失。
有没有办法设置这个值,使其在所有环境中都默认为 3?我希望当我通过psql
命令行连接时以及当我的应用程序通过数据库驱动程序连接时将其设置为 3。
答案1
解决方案 #1
从 PostgreSQL 9.4 开始可用。以超级用户身份连接时作为 SQL 语句运行:
ALTER SYSTEM SET extra_float_digits TO 3;
select pg_reload_conf();
(如果需要立即生效则接着)
解决方案 #2
编辑实例范围的postgresql.conf
配置文件。找到现有extra_float_digits
设置并将其更改为:
extra_float_digits = 3
与上一个解决方案一样,需要重新加载配置。请注意,通过 设置的ALTER SYSTEM
优先级高于 中的设置postgresql.conf
。
解决方案 #3
将配置分配给特定用户(默认情况下,此用户的任何连接都将具有此设置)。如果您可以与该用户连接,则不需要成为超级用户。
ALTER USER username SET extra_float_digits TO 3;
解决方案 #4
将配置分配给特定数据库(默认情况下,与此数据库的任何连接都将具有此设置)。如果您是数据库的所有者,则不需要成为超级用户。
ALTER DATABASE dbname SET extra_float_digits TO 3;