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

Postgresql मान सेट करने के लिए ट्रिगर डालें

आप सही हैं कि आपको एक ट्रिगर की आवश्यकता है, क्योंकि कॉलम के लिए डिफ़ॉल्ट मान सेट करना आपके लिए काम नहीं करेगा - डिफ़ॉल्ट मान केवल null के लिए काम करते हैं मूल्यों और रिक्त मूल्यों को रोकने में आपकी मदद नहीं करते हैं।

पोस्टग्रेज में ट्रिगर बनाने के कुछ चरण होते हैं:

चरण 1:एक ऐसा फ़ंक्शन बनाएं जो trigger type टाइप करे :

CREATE FUNCTION my_trigger_function()
RETURNS trigger AS $$
BEGIN
  IF NEW.C1 IS NULL OR NEW.C1 = '' THEN
    NEW.C1 := 'X';
  END IF;
  RETURN NEW;
END;
$$ LANGUAGE plpgsql

चरण 2:एक ट्रिगर बनाएं जो पहले . सक्रिय हो सम्मिलित करें, जो आपको डालने से पहले मूल्यों को बदलने की अनुमति देता है, जो उपरोक्त फ़ंक्शन को आमंत्रित करता है:

CREATE TRIGGER my_trigger
BEFORE INSERT ON T
FOR EACH ROW
EXECUTE PROCEDURE my_trigger_function()

और आपका काम हो गया।

उपरोक्त कोड को SQLFIdd पर निष्पादित करते हुए देखें कि यह सही तरीके से काम कर रहा है!

आप एक टिप्पणी में उल्लेख करते हैं कि मान 'X' एक सबक्वेरी से पुनर्प्राप्त किया जाता है। अगर ऐसा है, तो संबंधित लाइन को कुछ इस तरह बदलें:

NEW.C1 := (select some_column from some_table where some_condition);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेएसक्यूएल परिनियोजन और रखरखाव के साथ Ansible

  2. django परीक्षण ऐप त्रुटि - परीक्षण डेटाबेस बनाने में त्रुटि मिली:डेटाबेस बनाने की अनुमति से इनकार किया गया

  3. PostgreSQL में अहस्ताक्षरित पूर्णांक क्यों उपलब्ध नहीं है?

  4. पोस्टग्रेएसक्यूएल विवरण तालिका

  5. क्या Postgres नेस्टेड या स्वायत्त लेनदेन का समर्थन करता है?