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

एक कॉलम को लोअरकेस या अपरकेस में स्वचालित रूप से सम्मिलित करने के लिए पोस्टग्रेज नियम या ट्रिगर बनाएं

इस समाधान का परीक्षण किया जा चुका है और यह Postgres 9.1 में काम कर रहा है

मैंने समस्या को हल करने के लिए ट्रिगर्स का इस्तेमाल किया।

यहां पूरा कोड दिया गया है ताकि आप पोस्टग्रेज में पेस्ट कर सकें और इसे स्वयं आजमा सकें और यह बताएं कि यह नीचे कैसे काम करता है

DROP TABLE foobar;
CREATE TABLE foobar (
foo text,
bar int
);

CREATE OR REPLACE FUNCTION lowecase_foo_on_insert() RETURNS trigger AS $lowecase_foo_on_insert$
    BEGIN        
        NEW.foo = LOWER(NEW.foo);
        RETURN NEW;
    END;
$lowecase_foo_on_insert$ LANGUAGE plpgsql;

CREATE TRIGGER lowecase_foo_on_insert_trigger BEFORE INSERT OR UPDATE ON foobar
    FOR EACH ROW EXECUTE PROCEDURE lowecase_foo_on_insert();

INSERT INTO foobar (foo, bar) VALUES ('LOWERCASE ME', 1);

SELECT * FROM foobar; //result 'lowercase me'

हमारी डेमो टेबल बनाएं:

CREATE TABLE foobar (
    foo text,
    bar int
);

ऐसा फ़ंक्शन बनाएं जो (foo) को लोअरकेस में कनवर्ट करे:

CREATE OR REPLACE FUNCTION lowecase_foo_on_insert() RETURNS trigger AS $lowecase_foo_on_insert$
    BEGIN        
        NEW.foo = LOWER(NEW.foo);
        RETURN NEW;
    END;
$lowecase_foo_on_insert$ LANGUAGE plpgsql;

एक ट्रिगर बनाएं जो डालने से पहले फू को लोअरकेस करने के लिए कोड निष्पादित करता है:

CREATE TRIGGER lowecase_foo_on_insert_trigger BEFORE INSERT OR UPDATE ON foobar
    FOR EACH ROW EXECUTE PROCEDURE lowecase_foo_on_insert();

और अब हमारे काम का परीक्षण करने के लिए:

INSERT INTO foobar (foo, bar) VALUES ('LOWERCASE ME', 1);
SELECT * FROM foobar;

नतीजा यह है कि कॉलम फू में एकमात्र पंक्ति अब 'लोअरकेस मी' पर सेट है



  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 + हाइबरनेट + स्प्रिंग ऑटो डेटाबेस बनाएँ

  2. PostgresSQL स्थापना विफल:डेटाबेस क्लस्टर आरंभीकरण विफल MAC os

  3. Postgresql में सलाहकार ताले पर समयबाह्य

  4. jpa . के साथ पोस्टग्रेज से बाइट [] पढ़ते समय लंबाई लगभग दोगुनी हो जाती है

  5. हेरोकू पर रेल ऐप पोस्टग्रेएसक्यूएल डेटाबेस को नहीं लिख सकता, केवल पढ़ें