يحدد PRIMARY KEY مفتاحًا أساسيًا يميز كل صف في الجدول. قيم هذا المفتاح لا تتكرر ولا تقبل NULL. أما AUTO_INCREMENT فتُستخدم لتوليد قيمة عددية تلقائيًا عند إدخال صف دون تحديد قيمة العمود. غالبًا يُستخدم الاثنان معًا في عمود id، لكن لكل منهما وظيفة مختلفة يجب فهمها بصورة مستقلة.
المفتاح الأساسي وحده لا يعني أن MySQL سيولد أرقامًا متتابعة تلقائيًا. وبالمقابل، الهدف من التوليد التلقائي هو تسهيل إنشاء المعرفات، وليس تقديم معنى تجاري لكل رقم. لا ينبغي الاعتماد على المعرفات لمعرفة عدد الصفوف، لأن التسلسل قد يحتوي على فجوات. لمعرفة العدد الفعلي نستخدم COUNT. وعند إضافة سجل جديد، يمكن إغفال عمود المعرف ليُولَّد تلقائيًا وفق إعداد الجدول.
مثال
CREATE TABLE astronauts_key_example (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50));
INSERT INTO astronauts_key_example (name) VALUES ('Mona'), ('Sami');
SELECT id, name FROM astronauts_key_example ORDER BY id;
باختصار: PRIMARY KEY يضمن هوية فريدة، وAUTO_INCREMENT يولد قيم المعرف تلقائيًا.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.