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

Postgres में SELECT पर एक अद्यतन लागू करना

qry_count कॉलम के लिए डिफ़ॉल्ट मान पर ध्यान दें:

CREATE TABLE t (
    a INTEGER PRIMARY KEY, 
    b TEXT, 
    entered_by INTEGER, 
    qry_count INTEGER default 0
);

create function select_and_update(parameter text)
returns setof t as $$
    update t
    set qry_count = qry_count + 1
    from (
        select a
        from t
        where b = $1
        ) s
    where t.a = s.a
    ;
    select *
    from t
    where b = $1
    ;
$$ language sql;

अब उपरोक्त फ़ंक्शन का उपयोग करके तालिका को क्वेरी करें:

select * from select_and_update('a');

टिप्पणी के अनुसार अपडेट करें:

आप इसे गतिशील रूप से बना सकते हैं और किसी फ़ंक्शन के बजाय लेनदेन में केवल एसक्यूएल कोड को लपेट सकते हैं, जो कुछ भी है। कर्सर की कोई आवश्यकता नहीं है।

begin;
    update t
    set qry_count = qry_count + 1
    from (
        select a
        from t
        where b = 'a'
        ) s
    where t.a = s.a
    ;
    select *
    from t
    where b = 'a'
    ;
commit;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL डेटाबेस को दूसरे सर्वर पर कॉपी करना

  2. Ansible . से postgresql_query परिणाम कैसे प्राप्त करें

  3. क्या यूनिकॉर्न, साइडकीक और डीबी पूल आकार के बारे में मेरी समझ सही है?

  4. PostgreSQL में किसी तिथि से सप्ताह संख्या कैसे निकालें

  5. दो क्षेत्रों के लिए दो सरणियाँ बनाएँ, सरणियों के क्रम को सिंक में रखते हुए (बिना सबक्वेरी के)