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

यदि मौजूद नहीं है तो PostgreSQL तालिका बनाएं

यह सुविधा 9.1 पोस्ट करें . में लागू की गई है :

CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);

पुराने संस्करणों . के लिए , यहाँ इसके आसपास काम करने के लिए एक फ़ंक्शन है:

CREATE OR REPLACE FUNCTION create_mytable()
  RETURNS void
  LANGUAGE plpgsql AS
$func$
BEGIN
   IF EXISTS (SELECT FROM pg_catalog.pg_tables 
              WHERE  schemaname = 'myschema'
              AND    tablename  = 'mytable') THEN
      RAISE NOTICE 'Table myschema.mytable already exists.';
   ELSE
      CREATE TABLE myschema.mytable (i integer);
   END IF;
END
$func$;

कॉल करें:

SELECT create_mytable();        -- call as many times as you want. 

नोट:

  • कॉलम schemaname और tablename pg_tables . में केस सेंसिटिव हैं। यदि आप CREATE TABLE . में पहचानकर्ताओं को दोहरा-उद्धृत करते हैं कथन, आपको ठीक उसी वर्तनी का उपयोग करने की आवश्यकता है। यदि आप नहीं करते हैं, तो आपको लोअर-केस स्ट्रिंग्स का उपयोग करने की आवश्यकता है। देखें:

  • क्या PostgreSQL कॉलम नाम केस-संवेदी हैं?

  • pg_tables केवल वास्तविक टेबल है . पहचानकर्ता अभी भी संबंधित वस्तुओं द्वारा कब्जा कर लिया जा सकता है। देखें:

  • किसी दिए गए स्कीमा में तालिका मौजूद है या नहीं, इसकी जांच कैसे करें

  • अगर भूमिका निष्पादित इस फ़ंक्शन में उस तालिका को बनाने के लिए आवश्यक विशेषाधिकार नहीं हैं जिसका आप उपयोग करना चाहते हैं SECURITY DEFINER समारोह के लिए और इसे स्वामित्व वाली बनाएं आवश्यक विशेषाधिकारों के साथ किसी अन्य भूमिका द्वारा। यह संस्करण काफी सुरक्षित है।



  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 क्लाइंट लाइब्रेरी नहीं ढूँढ सकता (libpq)

  2. कैसे IsFinite () PostgreSQL में काम करता है

  3. क्या आप CREATE TABLE परिभाषा में एक इंडेक्स बना सकते हैं?

  4. PostgreSQL में "त्रुटि:  प्रत्येक UNION क्वेरी में समान संख्या में कॉलम होने चाहिए" को ठीक करें

  5. एसक्यूएल:उन रिकॉर्ड्स का चयन करें जहां सभी जुड़े हुए रिकॉर्ड कुछ शर्तों को पूरा करते हैं