मैं बर्फ के टुकड़े में एक मेज पर सभी विदेशी-कुंजी बाधाओं को कैसे छोड़ सकता हूं। कुछ इस तरह
ALTER TABLE TABLE_NAME DROP ALL FOREIGN KEY
मुझे स्नोफ्लेक दस्तावेज़ीकरण में कोई स्क्रिप्ट नहीं मिली है। इस तरह एकल विदेशी कुंजी बाधा ड्रॉप स्क्रिप्ट है
ALTER TABLE TABLE_NAME DROP FOREIGN KEY(COLUMN_NAME)
2 जवाब
यह एक एकल SQL कथन के भीतर संभव नहीं है। स्नोफ्लेक केवल गारंटी देता है कि "विदेशी कुंजी संदर्भों के साथ एक अद्वितीय/प्राथमिक कुंजी छोड़ना अद्वितीय/प्राथमिक कुंजी के साथ सभी संदर्भित विदेशी कुंजी को छोड़ देता है"
यहां देखें: https://docs.snowflake.com/en/sql -reference/constraints-drop.html
अधिक बाधाओं को छोड़ने का एक समाधान एक संग्रहित प्रक्रिया बनाना हो सकता है जो सभी बाधाओं पर लूप करता है और उन्हें हटा देता है।
संग्रहीत कार्यविधियाँ बनाने के बारे में अधिक जानकारी: https://docs.snowflake.com /en/sql-reference/stored-procedures.html
जानकारी स्कीमा-व्यू जहां से आपको सभी बाधाएं मिलती हैं: https: //docs.snowflake.com/hi/sql-reference/info-schema/table_constraints.html
संरचना इस प्रकार होनी चाहिए:
ALTER TABLE "RETAIL_POC"."SALES"."STORE_LOOKUP" ADD CONSTRAINT "store_pk" PRIMARY KEY (STORE_ID);
ALTER TABLE "RETAIL_POC"."SALES"."STORE_TRANSACTIONS" ADD CONSTRAINT "store_fk" FOREIGN KEY (STORE_ID) REFERENCES "RETAIL_POC"."SALES"."STORE_LOOKUP" (STORE_ID);
ALTER TABLE "RETAIL_POC"."SALES"."STORE_TRANSACTIONS" DROP CONSTRAINT "store_fk";
आप कई स्तंभों के आधार पर बाधाओं को भी छोड़ सकते हैं:
ALTER TABLE "RETAIL_POC"."SALES"."STORE_TRANSACTIONS" DROP FOREIGN KEY (store_id);
प्रासंगिक दस्तावेज: डोपिंग प्रतिबंध
संबंधित सवाल
नए सवाल
foreign-keys
विदेशी चाबियाँ रिलेशनल (और एसक्यूएल) डेटाबेस की एक डेटा अखंडता सुविधा हैं। एक विदेशी कुंजी एक संबंधपरक तालिका में विशेषताओं का एक सेट है जो एक संदर्भात्मक अखंडता बाधा के अधीन है। संदर्भात्मक अखंडता में बाधा है कि एक तालिका, ए में विदेशी प्रमुख विशेषताओं के मूल्यों को कुछ निर्दिष्ट तालिका बी (जो कभी-कभी ए के रूप में एक ही तालिका हो सकती है) में समान मूल्यों के साथ मेल खाना चाहिए।