@ অ্যাড্রিয়ান কর্নিশের উত্তরটি সঠিক। তবে বিদ্যমান প্রাথমিক কী বাদ দেওয়ার জন্য আরও একটি সতর্কতা রয়েছে। যদি সেই প্রাথমিক কীটি অন্য টেবিলের সাহায্যে বিদেশী কী হিসাবে ব্যবহৃত হয় তবে এটিকে ফেলে দেওয়ার চেষ্টা করার সময় আপনি একটি ত্রুটি পাবেন। মাইএসকিএল-এর কয়েকটি সংস্করণে ত্রুটি বার্তাটি বিকৃত ছিল (5.5.17 হিসাবে, এই ত্রুটি বার্তাটি এখনও রয়েছে is
alter table parent drop column id;
ERROR 1025 (HY000): Error on rename of
'./test/#sql-a04_b' to './test/parent' (errno: 150).
যদি আপনি এমন একটি প্রাথমিক কী বাদ দিতে চান যা অন্য টেবিলের দ্বারা উল্লেখ করা হয় তবে আপনাকে প্রথমে অন্য টেবিলের মধ্যে বিদেশী কীটি ফেলে দিতে হবে। আপনি প্রাথমিক কীটি পুনরায় তৈরি করার পরেও যদি আপনি এটি চান তবে আপনি এই বিদেশী কীটি পুনরায় তৈরি করতে পারেন।
এছাড়াও, যৌগিক কীগুলি ব্যবহার করার সময়, ক্রমটি গুরুত্বপূর্ণ। এইগুলো
1) ALTER TABLE provider ADD PRIMARY KEY(person,place,thing);
and
2) ALTER TABLE provider ADD PRIMARY KEY(person,thing,place);
একই জিনিস নয়। তারা উভয়ই তিনটি ক্ষেত্রের সেটে স্বতন্ত্রতা প্রয়োগ করে, তবে সূচকের দিক থেকে একটি পার্থক্য রয়েছে। ক্ষেত্রগুলি বাম থেকে ডানে সূচিযুক্ত। উদাহরণস্বরূপ, নিম্নলিখিত প্রশ্নগুলি বিবেচনা করুন:
A) SELECT person, place, thing FROM provider WHERE person = 'foo' AND thing = 'bar';
B) SELECT person, place, thing FROM provider WHERE person = 'foo' AND place = 'baz';
C) SELECT person, place, thing FROM provider WHERE person = 'foo' AND place = 'baz' AND thing = 'bar';
D) SELECT person, place, thing FROM provider WHERE place = 'baz' AND thing = 'bar';
বি ALTER স্টেটমেন্টে
প্রাথমিক কী সূচকটি ব্যবহার করতে পারে 1 এ প্রাথমিক বিবরণীতে প্রাথমিক কী সূচক
ব্যবহার করতে পারে 2 সি সূচক
ডি ব্যবহার করতে পারে না সূচক ব্যবহার করতে পারে না
একটি আংশিক সূচক হিসাবে সূচক 2-এ প্রথম দুটি ক্ষেত্র ব্যবহার করে। একটি সূচক 1 ব্যবহার করতে পারে না কারণ এটি সূচকের মধ্যবর্তী স্থান অংশটি জানে না। এটি এখনও সঠিক ব্যক্তির উপর আংশিক সূচক ব্যবহার করতে সক্ষম হতে পারে।
ডি কোনওটি সূচক ব্যবহার করতে পারে না কারণ এটি ব্যক্তি জানে না।
আরও তথ্যের জন্য এখানে mysql ডক্স দেখুন ।