কেবল স্পষ্টতার জন্য: একটি টেবিলের সর্বাধিক একটি প্রাথমিক কী থাকতে পারে। একটি প্রাথমিক কীতে এক বা একাধিক কলাম থাকে (সেই টেবিল থেকে)। যদি একটি প্রাথমিক কী দুটি বা ততোধিক কলাম ধারণ করে তবে এটিকে সম্মিলিত প্রাথমিক কী বলে । এটা অনুসরণ হিসাবে সংজ্ঞায়িত করা হয়:
CREATE TABLE voting (
QuestionID NUMERIC,
MemberID NUMERIC,
PRIMARY KEY (QuestionID, MemberID)
);
জোড় (প্রশ্নআইডি, মেম্বারআইডি) এর পরে অবশ্যই টেবিলের জন্য অনন্য হওয়া উচিত এবং কোনও মানই NULL হতে পারে না। আপনি যদি এই জাতীয় কোনও জিজ্ঞাসা করেন:
SELECT * FROM voting WHERE QuestionID = 7
এটি প্রাথমিক কী এর সূচক ব্যবহার করবে। তবে আপনি যদি এটি করেন:
SELECT * FROM voting WHERE MemberID = 7
এটি কোনও কারণ নয় যে একটি যৌগিক সূচক ব্যবহার করতে "বাম" থেকে সমস্ত কীগুলি ব্যবহার করা দরকার। যদি কোনও সূচক ক্ষেত্রগুলিতে থাকে (এ, বি, সি) এবং আপনার মানদণ্ড বি এবং সি তে থাকে তবে সেই সূত্রটি সেই প্রশ্নের জন্য আপনার কোনও কাজে আসবে না। সুতরাং (প্রশ্নআইডি, মেম্বারআইডি) এবং (সদস্যআইডি, প্রশ্নআইডি) থেকে যে কোনওটি আপনি সারণীটি কীভাবে ব্যবহার করবেন তার জন্য সবচেয়ে উপযুক্ত choose
প্রয়োজনে অন্যটিতে একটি সূচক যুক্ত করুন:
CREATE UNIQUE INDEX idx1 ON voting (MemberID, QuestionID);