যদিও অন্যান্য উত্তরগুলি বেশ সহায়ক, কেবল আমার অভিজ্ঞতাটিও ভাগ করে নিতে চেয়েছিলেন।
আমি এই সমস্যার মুখোমুখি হয়েছি যখন আমি এমন একটি টেবিল মুছে ফেলেছি যার idইতিমধ্যে অন্যান্য সারণীতে ( তথ্য সহ ) বিদেশী কী হিসাবে উল্লেখ করা হয়েছিল এবং কিছু অতিরিক্ত কলাম দিয়ে টেবিলটি পুনরায় তৈরি / আমদানির চেষ্টা করেছি।
বিনোদনের জন্য ক্যোয়ারী (পিএইচপিএমআইএডমিনে উত্পন্ন) নীচের মত দেখাচ্ছে:
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কী?