通过SQL设置参数 本页介绍天翼云TeleDB数据库通过SQL设置参数。 TeleDB提供了三个SQL命令来建立配置默认值。已经提到过的ALTER SYSTEM命令提供了一种改变全局默认值的从SQL可访问的方法;它在功效上等效于编辑postgresql.conf。此外,还有两个命令可以针对每个数据库或者每个角色设置默认值: ALTER DATABASE命令允许针对一个数据库覆盖其全局设置。 ALTER ROLE命令允许用用户指定的值来覆盖全局设置和数据库设置。 只有当开始一个新的数据库会话时,用ALTER DATABASE和 ALTER ROLE设置的值才会被应用。它们会覆盖从配置文件或服务器命令行获得的值,并且作为该会话后续的默认值。注意某些设置在服务器启动后不能被更改,因此不能用这些命令来设置。 一但一个客户端连接到数据库,TeleDB会提供两个额外的SQL命令(以及等效的函数)用以影响会话本地的配置设置: SHOW命令允许察看所有参数的当前值。对应的函数是 currentsetting(settingname text)。 SET命令允许修改对于一个会话可以本地设置的参数的当前值, 它对其他会话没有影响。对应的函数是 setconfig(settingname, newvalue, islocal)。 此外,系统视图pgsettings可以被用来查看和改变会话本地的值: 查询这个视图与使用SHOW ALL相似,但是可以提供更多细节。它也更加灵活,因为可以为它指定过滤条件或者把它与其他关系进行连接。 在这个视图上使用UPDATE并且指定更新setting列,其效果等同于发出SET命令。例如,下面的命令 SET configurationparameter TO DEFAULT; 等效于: UPDATE pgsettings SET setting resetval WHERE name 'configurationparameter';