আমি কীভাবে কাস্টম ডাটাবেস ভেরিয়েবলগুলি সেট এবং করব?


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প্যাগএডমিনে ম্যানুয়ালি যুক্ত করতে পারেন (এটি ড্রপ-ডাউনে প্রদর্শিত হবে না - কমপক্ষে আমার পক্ষে নয়)। অন্যথায়, আপনি এটি অন্য পোস্টগ্রিসএসকিউএল ভেরিয়েবলের মতোই ব্যবহার করতে পারেন।

9.2 সংস্করণ এবং আরও নতুনটির জন্য আপডেট

PostgreSQL 9.2 এর পরে, আমাদের custom_variable_classesআর সেট করতে হবে না। যে কোনও পরিবর্তনশীল তারা চাইলে সেট করতে পারে - কেবলমাত্র সীমাবদ্ধতা মনে হয় এটির এখনও দুটি অংশ থাকতে হবে:

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

SET thing.something TO 'bla';
SET

আমার ধারণা, বিল্টিন পরামিতিগুলির সাথে সংঘর্ষ এড়াতে এটি এমন।


হুম। ডাটাবেসে একটি এসকিউএল কোয়েরি থেকে এটি করার কোনও উপায় নেই?
জেরেমি হলোভাকস

আপনাকে প্রথমে postgresql.conf এ ভেরিয়েবলগুলি নির্ধারণ করতে হবে। আফাইক এর জন্য পোস্টগ্র্যাস এসকিউএল পুনরায় চালু করা দরকার, সুতরাং আপনি এসকিউএল থেকে এটি করতে পারবেন না।
dezso

8

@ ডেসো এর উত্তর যুক্ত করতে, এই ভেরিয়েবলগুলি দিয়ে পরিবর্তন করা যেতে পারে

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

এবং সাথে পড়া

SELECT current_setting('class.name')

আরও তথ্যের জন্য এই লিঙ্কটি দেখুন: http://www.postgresql.org/docs/9.3/static/function-admin.html

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.