ฉันจะตั้งค่าและรับตัวแปรฐานข้อมูลที่กำหนดเองได้อย่างไร


9

ใช้PGAdmin IIIฉันสามารถคลิกขวาที่ฐานข้อมูลนำทางไปยังVariablesแท็บและวางคุณสมบัติชื่อค่าตัวแปรในฐานข้อมูลเอง มีวิธีปรับแต่งเหล่านี้หรือไม่ ฉันเห็นapplication_nameตัวแปร แต่ฉันต้องการมีapplication_versionตัวแปร

คำตอบ:


8

คุณต้องเพิ่มตัวแปรลงในส่วนท้ายของpostgresql.confไลค์

#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

custom_variable_classes = 'general'     # list of custom variable class names

general.application_version = 'v1.0'

เมื่อรีสตาร์ทคุณสามารถเพิ่มgeneral.application_versionด้วยตนเองใน PgAdmin (มันจะไม่ปรากฏในรายการแบบหล่นลง - อย่างน้อยก็ไม่ใช่สำหรับฉัน) มิฉะนั้นคุณสามารถใช้มันเหมือนกับตัวแปร PostgreSQL อื่น ๆ

อัปเดตสำหรับรุ่น 9.2 และใหม่กว่า

ตั้งแต่ PostgreSQL 9.2 เป็นต้นไปเราไม่จำเป็นต้องตั้งค่าcustom_variable_classesอีกต่อไป หนึ่งสามารถตั้งค่าตัวแปรใด ๆ ที่พวกเขาต้องการ - ข้อ จำกัด เพียงอย่างเดียวที่ดูเหมือนว่าจะยังคงต้องมีสองส่วน:

SET something TO 'bla';
ERROR:  unrecognized configuration parameter "something"

SET thing.something TO 'bla';
SET

ฉันเดาว่านี่คือเพื่อหลีกเลี่ยงการชนกับพารามิเตอร์ในตัว


อืมม ไม่มีวิธีในการทำเช่นนั้นจากแบบสอบถาม SQL ในฐานข้อมูลหรือไม่
Jeremy Holovacs

คุณต้องกำหนดตัวแปรใน postgresql.conf ก่อน AFAIK สิ่งนี้ต้องการการรีสตาร์ท PostgreSQL ดังนั้นคุณจึงไม่สามารถทำได้จาก SQL
dezso

8

หากต้องการเพิ่มคำตอบของ @ dezso ตัวแปรเหล่านี้สามารถเปลี่ยนแปลงได้ด้วย

SELECT set_config('class.name', 'value', valid_for_transaction_only::boolean)

และอ่านด้วย

SELECT current_setting('class.name')

ดูลิงค์นี้สำหรับข้อมูลเพิ่มเติม: http://www.postgresql.org/docs/9.3/static/functions-admin.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.