नीचे विफल हो जाएगा क्योंकि संयोजन अलग है। मैं यह क्यों दिखाऊं? क्योंकि ओपी ने नहीं किया।
नोट मैंने उस संयोजन के साथ 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
. इस अवधारणा का वर्णन नीचे दूसरे खंड में किया गया है। पहला खंड एक सहायक . की ओर संकेत करता है यदि आवश्यक हो तो संदर्भ . में अनुक्रमणिका बनाई जाएगी (बच्चे) टेबल यदि आवश्यक हो तो।