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

SQL त्रुटि (1215):विदेशी कुंजी बाधा नहीं जोड़ सकता

नीचे विफल हो जाएगा क्योंकि संयोजन अलग है। मैं यह क्यों दिखाऊं? क्योंकि ओपी ने नहीं किया।

नोट मैंने उस संयोजन के साथ varchar 255 के लिए आकार देने पर त्रुटि 1071 के कारण आकार को छोटा कर दिया और फिर ऑटो चुने गए वर्णसेट।

बात यह है कि, अगर मिलान अलग है, तो यह काम नहीं करेगा।

CREATE TABLE `user_details` (
    `ClientID` VARCHAR(100) NOT NULL,
    PRIMARY KEY (`ClientID`)
)ENGINE=InnoDB;

CREATE TABLE `profilePic` (
    `ClientID` VARCHAR(100) NOT NULL,
    PRIMARY KEY (`ClientID`),
    CONSTRAINT `FK__user_details` FOREIGN KEY (`ClientID`) REFERENCES `user_details` (`ClientID`) ON UPDATE CASCADE ON DELETE CASCADE
)COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB;

उपरोक्त विफलता तालिका स्तर पर है। कॉलम-स्तर के मिलान के मेल न खाने के कारण 1215 त्रुटि उत्पन्न करने वाली एक पेचीदा समस्या को इस उत्तर में देखा जा सकता है। ।

चर्चा को अधिक सामान्य मामलों तक खींचना ...

चाहे आप टेबल निर्माण पर एक विदेशी कुंजी बाधा स्थापित करने का प्रयास कर रहे हों या ALTER TABLE

जैसे

ALTER TABLE `facility` ADD CONSTRAINT `fkZipcode` 
     FOREIGN KEY (`zipcode`) REFERENCES `allzips`(`zipcode`);

निम्नलिखित लागू होंगे।

विदेशी कुंजी का उपयोग करने वाले MySQL मैनुअल पेज से बाधाएं :

इसके अलावा, संदर्भित (पैरेंट) तालिका में फ़ास्ट लुकअप (सत्यापन) के लिए सबसे बाईं ओर की कुंजी उपलब्ध होनी चाहिए। वह मूल कुंजी PRIMARY होने की आवश्यकता नहीं है या यहां तक ​​कि UNIQUE . इस अवधारणा का वर्णन नीचे दूसरे खंड में किया गया है। पहला खंड एक सहायक . की ओर संकेत करता है यदि आवश्यक हो तो संदर्भ . में अनुक्रमणिका बनाई जाएगी (बच्चे) टेबल यदि आवश्यक हो तो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql से चुनें वेरिएबल VB.NET में डालें

  2. क्या शर्तों के बीच या होने पर MySQL इंडेक्स का उपयोग कर सकता है?

  3. PHP/MySQL साइट में समवर्ती उपयोगकर्ता लॉगिन को कैसे रोकें?

  4. XAMPP - MySQL अप्रत्याशित रूप से बंद हो गया

  5. SSH टनल पर MySQL सर्वर को दूरस्थ रूप से एक्सेस करें