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

PostgreSQL में खाली को शून्य में कैसे बदलें?

NULLIF()<है /कोड> समारोह:

SELECT NULLIF(var, '');

अगर var $2 में मान रखता है, आपको NULL मिलता है इसके बजाय।
उदाहरण में मैं खाली स्ट्रिंग को प्रतिस्थापित करता हूं:'' NULL . के साथ ।

पूर्णांक प्रकार के लिए कोई खाली स्ट्रिंग नहीं है . बस संभव नहीं है। चूंकि NULLIF() डेटा प्रकार को स्विच नहीं कर सकता, आपको PHP में अपने इनपुट को स्वच्छ करना होगा।

यदि आपने कॉलम डिफ़ॉल्ट को परिभाषित नहीं किया है, तो आप बस कॉलम को छोड़ दें . भी कर सकते हैं INSERT . में कमांड और यह NULL . से भर जाएगा (जो कि डिफ़ॉल्ट DEFAULT है )।

जांचें कि PHP में पैरामीटर खाली है या नहीं और कॉलम को INSERT . में शामिल न करें आदेश अगर यह है।

या PHP शाब्दिक NULL . का उपयोग करें इसके बजाय जैसे क्वास्नोई यहां प्रदर्शित करता है ।

बाकी केवल स्ट्रिंग प्रकारों के लिए समझ में आता है

पूरी तरह सुनिश्चित करने के लिए , कोई भी खाली स्ट्रिंग दर्ज नहीं कर सकता CHECK . जोड़ें तालिका के लिए बाधा:

ALTER TABLE tr_view
ADD CONSTRAINT tr_view_age_not_empty CHECK (age <> '');

अपवादों से बचने के लिए इसके कारण, आप एक ट्रिगर जोड़ सकते हैं जो स्वचालित रूप से इनपुट को ठीक करता है:

CREATE OR REPLACE FUNCTION trg_tr_view_avoid_empty()
  RETURNS trigger AS
$func$
BEGIN
   IF NEW.age = '' THEN
      NEW.age := NULL;
   END IF;

   IF NEW.month = '' THEN
      NEW.month := NULL;
   END IF;

   RETURN NEW;
END
$func$  LANGUAGE plpgsql

CREATE TRIGGER tr_view_avoid_empty
BEFORE INSERT OR UPDATE ON tr_view
FOR EACH ROW
WHEN (NEW.age = '' OR NEW.month = '')
EXECUTE PROCEDURE trg_tr_view_avoid_empty();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres . में योग के साथ पुनरावर्ती क्वेरी

  2. एक्लिप्सलिंक और पोस्टग्रेएसक्यूएल के साथ यूयूआईडी का उपयोग करना

  3. PHP pg_connect () के साथ PostgreSQL से कनेक्ट नहीं हो सकता

  4. sql में एक कॉलम का उपयोग करके इसे क्लॉज द्वारा समूह में जोड़े बिना शामिल हों

  5. PostgreSQL पृष्ठभूमि प्रक्रियाओं के बारे में कोई दस्तावेज़ किसके पास है?