नहीं, कोई बात नहीं। भले ही SELECT 1 FROM table WHERE ... FOR UPDATE
का उपयोग किया जाता है, तो क्वेरी उन सभी पंक्तियों को लॉक कर देती है जो शर्तों को पूरा करती हैं।
यदि क्वेरी एक जॉइन से पंक्तियों को पुनः प्राप्त करती है, और हम शामिल होने में शामिल सभी तालिकाओं से पंक्तियों को लॉक नहीं करना चाहते हैं, लेकिन केवल पंक्तियों को लॉक करना चाहते हैं। विशिष्ट तालिकाओं से, एक SELECT ... FOR UPDATE OF list-of-tablenames
सिंटैक्स उपयोगी हो सकता है:
http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-FOR-UPDATE-SHARE
Pl/PgSql में PERFORM
. का उपयोग करें क्वेरी परिणाम को त्यागने का आदेश:
http://www.postgresql.org/docs/9.2/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-NORESULT
इसके बजाय:
SELECT 1 INTO dummy FROM my_table WHERE userid=v_1 LIMIT 1 FOR UPDATE;
उपयोग करें:
PERFORM 1 FROM my_table WHERE userid=v_1 LIMIT 1 FOR UPDATE;