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;