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

किसी डेटाबेस के अंदर कुछ तालिकाओं के स्वामित्व को पोस्टग्रेज़ से दूसरे उपयोगकर्ता में कैसे बदलें?

क्या आपने anonymous code block के साथ प्रयास किया है ? नीचे दिया गया यह कोड ब्लॉक public schema स्कीमा से सभी तालिकाओं का चयन करता है जो उपयोगकर्ता से संबंधित है postgres और उपयोगकर्ता को स्वामित्व सेट करें user :

DO $$
DECLARE row RECORD;
BEGIN
 FOR row IN SELECT * FROM pg_tables 
            WHERE schemaname = 'public' AND tableowner = 'postgres' LOOP 
  EXECUTE FORMAT('ALTER TABLE %I.%I OWNER TO user',row.schemaname,row.tablename);
 END LOOP;
END; 
$$;

ध्यान रखें कि यह कार्रवाई सभी तालिकाओं . के स्वामित्व को संशोधित करेगी आपकी स्कीमा में जो दिए गए उपयोगकर्ता से संबंधित है। स्पष्ट रूप से आप pg_tables . को बदलकर इन तालिकाओं को और फ़िल्टर कर सकते हैं लूप में क्वेरी। एक नज़र डालें:

SELECT * FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'postgres';

इसे सावधानी से प्रयोग करें!

संपादित करें :ऊपर के चयन में से कुछ तालिकाओं को फ़िल्टर करने के लिए एक NOT IN . जोड़ें , जैसे:

SELECT * FROM pg_tables 
WHERE schemaname = 'public' AND tableowner = 'postgres'
AND tablename NOT IN ('table1','table2','table3')



  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. मैं NOT IN स्टेटमेंट में Postgresql किसी भी ऑपरेटर का उपयोग कैसे करूं?

  3. हाइबरनेट को अगला अनुक्रम मान नहीं मिल सका

  4. PostgreSQL कस्टम सप्ताह संख्या - पहला सप्ताह जिसमें 1 फरवरी शामिल है

  5. पूर्णांकों का विभाजन 0 . लौटाता है