যদিও অন্যান্য উত্তরগুলি বেশ সহায়ক, কেবল আমার অভিজ্ঞতাটিও ভাগ করে নিতে চেয়েছিলেন।
আমি এই সমস্যার মুখোমুখি হয়েছি যখন আমি এমন একটি টেবিল মুছে ফেলেছি যার 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
কী?