MySQL में विदेशी कुंजी जांच आपको उन तालिकाओं में कुछ डेटाबेस अपडेट करने से रोक सकती है जिनमें विदेशी कुंजी बाधाएं हैं। ऐसे मामलों में, आप अस्थायी रूप से MySQL में विदेशी कुंजी जांच को अक्षम कर सकते हैं, अपने अपडेट कर सकते हैं और बाद में MySQL में विदेशी कुंजी जांच सक्षम कर सकते हैं। यहाँ MySQL में विदेशी कुंजी बाधा को अक्षम करने का तरीका बताया गया है।
MySQL में फॉरेन की चेक को डिसेबल कैसे करें
यहाँ MySQL में विदेशी कुंजी जाँच को अक्षम करने के चरण दिए गए हैं।
आप सिस्टम वेरिएबल foreign_key_checks . सेट करके MySQL में फॉरेन की चेक को डिसेबल कर सकते हैं से 0.
SET foreign_key_checks = 0
इसी तरह, आप सिस्टम वैरिएबल forign_key_check . सेट करके MySQL में फॉरेन की चेक इनेबल कर सकते हैं 1
. तकSET foreign_key_checks = 1
हालाँकि, कृपया ध्यान दें, आपके द्वारा विदेशी कुंजी जाँचों को सक्षम करने के बाद, MySQL आपके मौजूदा डेटा को फिर से मान्य नहीं करेगा जिसे आपने विदेशी कुंजी जाँच को अक्षम करने के बाद जोड़ा था। यह केवल आपके डेटाबेस में किसी भी नए जोड़े/अपडेट की जांच करेगा।
बोनस पढ़ें :MySQL में सीक्वेंस कैसे बनाएं
आइए एक उदाहरण देखें। मान लें कि आपके पास निम्नलिखित दो टेबल हैं देश और शहर ऐसा कि शहर एक विदेशी कुंजी कॉलम है देश_आईडी जो देश_आईडी . को संदर्भित करता है देशों . में
CREATE TABLE countries( country_id INT PRIMARY KEY AUTO_INCREMENT, country_name VARCHAR(255) NOT NULL );
CREATE TABLE cities( city_id INT PRIMARY KEY AUTO_INCREMENT, city_name VARCHAR(255), country_id INT, FOREIGN KEY(country_id) REFERENCES countries(country_id) );
बोनस पढ़ें :MySQL में दो तालिकाओं की तुलना कैसे करें
आइए अब शहरों . में एक पंक्ति डालने का प्रयास करें देश_आईडी . का उल्लेख किए बिना तालिका विदेशी कुंजी मान और जैसा कि नीचे दिखाया गया है आपको एक त्रुटि मिलेगी।
mysql> INSERT INTO cities(city_name, country_id) VALUES('NYC',1); ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`sample`.`cities`, CONSTRAINT `cities_ibfk_1` FOREIGN KEY (`country_id`) REFERENCES `countries` (`country_id`))
अब हम MySQL में विदेशी कुंजी जांच को अक्षम करते हैं और फिर से पंक्ति डालने का प्रयास करते हैं।
mysql> SET foreign_key_checks = 0; mysql> INSERT INTO cities(city_name, country_id) VALUES('NYC',1); mysql> select * from cities; +---------+-----------+------------+ | city_id | city_name | country_id | +---------+-----------+------------+ | 2 | NYC | 1 | +---------+-----------+------------+
अब हम MySQL में फॉरेन चेक इनेबल करते हैं
mysql> SET foreign_key_checks = 1;
बोनस पढ़ें :MySQL में पिछले एक महीने का डेटा कैसे प्राप्त करें
हम अंत में देशों . में एक संगत पंक्ति सम्मिलित करते हैं टेबल।
mysql> INSERT INTO countries(country_id, country_name) VALUES(1,'USA'); mysql> select * from countries; +------------+--------------+ | country_id | country_name | +------------+--------------+ | 1 | USA | +------------+--------------+
Ubiq मिनटों में डेटा को विज़ुअलाइज़ करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!