हालाँकि अन्य उत्तर काफी मददगार हैं, लेकिन मैं अपने अनुभव को भी साझा करना चाहता था।
मुझे उस समस्या का सामना करना पड़ा जब मैंने एक तालिका को हटा दिया id
था जिसे पहले से ही अन्य तालिकाओं ( डेटा के साथ ) में विदेशी कुंजी के रूप में संदर्भित किया जा रहा था और कुछ अतिरिक्त स्तंभों के साथ तालिका को फिर से बनाने / आयात करने की कोशिश की।
मनोरंजन के लिए क्वेरी (phpMyAdmin में उत्पन्न) निम्नलिखित की तरह दिखती है:
CREATE TABLE `the_table` (
`id` int(11) NOT NULL, /* No PRIMARY KEY index */
`name` varchar(255) NOT NULL,
`name_fa` varchar(255) NOT NULL,
`name_pa` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
... /* SOME DATA DUMP OPERATION */
ALTER TABLE `the_table`
ADD PRIMARY KEY (`id`), /* PRIMARY KEY INDEX */
ADD UNIQUE KEY `uk_acu_donor_name` (`name`);
जैसा कि आप देख सकते हैं, PRIMARY KEY
इंडेक्स को निर्माण ( और डेटा डालने ) के बाद सेट किया गया था जो समस्या पैदा कर रहा था।
उपाय
समाधान PRIMARY KEY
तालिका परिभाषा क्वेरी पर सूचकांक को जोड़ने के लिए था id
जिसके लिए विदेशी कुंजी के रूप में संदर्भित किया जा रहा था, जबकि इसे उस ALTER TABLE
हिस्से से भी हटा दिया गया था जहां सूचकांक निर्धारित किए जा रहे थे:
CREATE TABLE `the_table` (
`id` int(11) NOT NULL PRIMARY KEY, /* <<== PRIMARY KEY INDEX ON CREATION */
`name` varchar(255) NOT NULL,
`name_fa` varchar(255) NOT NULL,
`name_pa` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
table2.IDFromTable1
औरtable1.ID
?