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

PostgreSQL 9.4.2 . में कौन सा लॉक, यदि कोई हो, 'CREATE TRIGGER' उपयोग करता है?

आप Postgres-XL की तुलना मुख्य PostgreSQL दस्तावेज़ों से कर रहे हैं। दो अलग-अलग उत्पाद, एक साझा इतिहास के साथ। Postgres-XL में बहुत सारे हैं स्टॉक PostgreSQL से परिवर्तन की।

CREATE TRIGGER पीजी डॉक्स में सूचीबद्ध होना चाहिए और नहीं है, हालांकि, और यह एक निरीक्षण है।

स्रोत कोड पर एक त्वरित नज़र डालने से पता चलता है कि CREATE TRIGGER एक ShareRowExclusiveLock लेता है , इसलिए इस मामले में XL का प्रलेखन PostgreSQL के व्यवहार से मेल खाता है।

आप कुछ ऐसा करके स्रोतों को देखे बिना इसे स्वयं देख सकते हैं:

CREATE TABLE test();

CREATE OR REPLACE FUNCTION dummy_tg() RETURNS TRIGGER
LANGUAGE plpgsql AS $$ BEGIN END; $$;

BEGIN;

CREATE TRIGGER blah BEFORE INSERT ON test FOR EACH ROW EXECUTE PROCEDURE dummy_tg();

\x

SELECT * FROM pg_locks 
WHERE pid = pg_backend_pid() 
AND relation = 'test'::regclass;

ROLLBACK;

... जो दर्शाता है कि मैं स्रोतों को पढ़ने में गलत था, क्योंकि:

locktype | relation
mode     | AccessExclusiveLock

इसने AccessExclusiveLock लिया।




  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 HTML संस्थाओं के कार्य को प्रतिस्थापित करता है

  2. Postgres में निकटतम कार्य दिवस की गणना करें

  3. टाइमज़ोन के बिना किसी भी दिनांक स्ट्रिंग को टाइमस्टैम्प में कनवर्ट करें

  4. लेन-देन के साथ अप्सर्ट

  5. पहले से परिभाषित पर्यावरण चर पर putenv () की आवश्यकता क्यों है?