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

MySQL विदेशी कुंजी बाधा गायब हो रही है

केवल चीजों को स्पष्ट करने के लिए, विदेशी कुंजी बाधाओं को लागू करने के बाद तालिका इस तरह दिखती है:

CREATE TABLE `leerplan_oefenreeks` (
  `leerplan_oefenreeks_id` int(11) NOT NULL AUTO_INCREMENT,
  `leerplan_id` int(11) NOT NULL,
  `oefenreeks_id` int(11) NOT NULL,
  `plaats` int(11) NOT NULL,
  PRIMARY KEY (`leerplan_oefenreeks_id`),
  KEY `fk_leerp_oefenr_leerplan` (`leerplan_id`),
  KEY `fk_leerp_oefenr_oefenreeks` (`oefenreeks_id`),
  CONSTRAINT `fk_leerp_oefenr_oefenreeks` FOREIGN KEY (`oefenreeks_id`) REFERENCES `oefenreeks` (`oefenreeks_id`) ON DELETE CASCADE,
  CONSTRAINT `fk_leerp_oefenr_leerplan` FOREIGN KEY (`leerplan_id`) REFERENCES `leerplan` (`leerplan_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;

ध्यान दें कि fk_leerp_oefenr_leerplan और fk_leerp_oefenr_ofenreeks इंडेक्स mysql अपने आप जुड़ जाते हैं।

पहली अनूठी कुंजी बाधा जोड़ने के बाद:

ALTER TABLE leerplan_oefenreeks ADD CONSTRAINT un_leerp_oefenr UNIQUE(leerplan_id, oefenreeks_id);

Mysql fk_leerp_oefenr_leerplan इंडेक्स को हटा देता है क्योंकि अब leerplan_id कॉलम पर विदेशी कुंजी चेक का समर्थन करने की आवश्यकता नहीं है। इस बिंदु पर, तालिका इस तरह दिखती है:

CREATE TABLE `leerplan_oefenreeks` (
  `leerplan_oefenreeks_id` int(11) NOT NULL AUTO_INCREMENT,
  `leerplan_id` int(11) NOT NULL,
  `oefenreeks_id` int(11) NOT NULL,
  `plaats` int(11) NOT NULL,
  PRIMARY KEY (`leerplan_oefenreeks_id`),
  UNIQUE KEY `un_leerp_oefenr` (`leerplan_id`,`oefenreeks_id`),
  KEY `fk_leerp_oefenr_oefenreeks` (`oefenreeks_id`),
  CONSTRAINT `fk_leerp_oefenr_leerplan` FOREIGN KEY (`leerplan_id`) REFERENCES `leerplan` (`leerplan_id`) ON DELETE CASCADE,
  CONSTRAINT `fk_leerp_oefenr_oefenreeks` FOREIGN KEY (`oefenreeks_id`) REFERENCES `oefenreeks` (`oefenreeks_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;

लंबी कहानी छोटी, स्क्लियोग केवल बाईं ओर के ट्री व्यू में इंडेक्स दिखाता है, यदि आप विदेशी कुंजी देखना चाहते हैं, तो ट्री व्यू में तालिका का चयन करें और F10 दबाएं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्वेरी से परिवर्तनीय परिणाम सेट करें

  2. #1062 - अद्वितीय कुंजी (MySQL) जोड़ने का प्रयास करते समय 'unique_id' कुंजी के लिए डुप्लिकेट प्रविष्टि ''

  3. सनस्पॉट सोलर अपरिभाषित फ़ील्ड प्रकार

  4. MySQL Dumps से DEFINER क्लॉज हटाएं

  5. MySQL एक स्वत:वृद्धि हुई पंक्ति में बदलें