क्या आपने 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')