PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL 9.2 . में hstore कुंजी का नाम बदलना

मुझे लगता है कि आप सही कह रहे हैं कि आपको पुरानी जोड़ी को बाहर निकालना होगा और नई जोड़ी (बदली हुई कुंजी के साथ) को वापस अंदर रखना होगा।

आप इसे एक-लाइनर के साथ कर सकते हैं:

(h - from_key) || hstore(to_key, h -> from_key)

जहां h hstore है, from_key वह कुंजी है जिसे आप बदलना चाहते हैं और to_key वह है जिसे आप इसे बदलना चाहते हैं। यह वांछित परिवर्तन के साथ एक नया hstore लौटाएगा लेकिन यह मानता है कि from_key h . में है; अगर from_key h में नहीं है तो आपके पास एक to_key -> NULL होगा आपके स्टोर में। यदि आप, सभी समझदार लोगों की तरह, आवारा NULL नहीं चाहते हैं तो मैं एक सरल कार्य में तर्क को लपेटूंगा ताकि अस्तित्व की जाँच को जोड़ना आसान हो सके; कुछ इस तरह:

create or replace function
change_hstore_key(h hstore, from_key text, to_key text) returns hstore as $$
begin
    if h ? from_key then
        return (h - from_key) || hstore(to_key, h -> from_key);
    end if;
    return h;
end
$$ language plpgsql;

तब आप इन दोनों को कह सकते हैं और अपेक्षित परिणाम प्राप्त कर सकते हैं:

=> select change_hstore_key('a=>1,b=>2,c=>3'::hstore, 'b', 'pancakes');
      change_hstore_key       
------------------------------
 "pancakes"=>"2", "a"=>"1", "c"=>"3"

=> select change_hstore_key('a=>1,b=>2,c=>3'::hstore, 'pancakes', 'X');
      change_hstore_key       
------------------------------
 "a"=>"1", "b"=>"2", "c"=>"3"



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में xlookup फंक्शन

  2. पोस्टग्रेज जोंस कॉलम में नेस्टेड सरणियों को कैसे क्वेरी करें?

  3. Postgresql संग्रहीत कार्यविधि वापसी तालिका सभी कॉलम

  4. SQLAlchemy में सेट-रिटर्निंग फ़ंक्शन (SRF) और एक्सेस कॉलम के साथ जुड़ना

  5. Postgresql 8.3 . में टाइमस्टैम्प के टाइमज़ोन को कैसे जानें