يملك الجدول مفتاحًا أساسيًا واحدًا، لكن هذا المفتاح يستطيع أن يتكون من عدة أعمدة. لذلك تختلف عبارة وجود مفتاح مركب عن وجود مفتاحين أساسيين مستقلين. إذا كتبنا PRIMARY KEY على عمود ثم كررنا تعريف مفتاح أساسي آخر في الجدول نفسه، يرفض MySQL تعريف الجدول.
عندما توجد عدة قيم تصلح لتمييز السجل، نختار إحداها مفتاحًا أساسيًا ونستخدم قيودًا مناسبة لحماية القيم الأخرى. مثلًا، قد يكون للكتاب رقم داخلي ورقم فهرسة فريد. يمكن جعل الرقم الداخلي مفتاحًا أساسيًا، وفرض UNIQUE مع NOT NULL على رقم الفهرسة إذا كان مطلوبًا وغير قابل للتكرار.
مثال
CREATE TABLE books (
id INT PRIMARY KEY,
catalog_code INT NOT NULL,
CONSTRAINT uq_books_catalog UNIQUE (catalog_code)
);
أما إذا كانت هوية الصف تعتمد على عمودين معًا، فنكتب تعريفًا واحدًا مثل PRIMARY KEY (a, b) بدل تعريف مفتاح مستقل لكل عمود.
باختصار: يوجد مفتاح أساسي واحد لكل جدول؛ تعدد أعمدته مسموح، وتعدد تعريفاته المستقلة غير مسموح.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.