SQL AUTO INCREMENT الحقل
حقل زيادة تلقائي
تسمح الزيادة التلقائية بإنشاء رقم فريد تلقائيًا عند إدراج سجل جديد في جدول.
غالبًا ما يكون هذا هو حقل المفتاح الأساسي الذي نرغب في إنشائه تلقائيًا في كل مرة يتم فيها إدراج سجل جديد.
بناء الجملة لـ MySQL
تحدد عبارة SQL التالية العمود "Personid" ليكون حقل مفتاح أساسي للزيادة التلقائية في جدول "الأشخاص":
CREATE TABLE Persons
(
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);
تستخدم MySQL AUTO_INCREMENT
الكلمة الأساسية لأداء ميزة زيادة تلقائية.
بشكل افتراضي ، قيمة البداية لـ AUTO_INCREMENT
1 ، وستزداد بمقدار 1 لكل سجل جديد.
للسماح AUTO_INCREMENT
للتسلسل بالبدء بقيمة أخرى ، استخدم عبارة SQL التالية:
ALTER TABLE Persons AUTO_INCREMENT=100;
لإدراج سجل جديد في جدول "الأشخاص" ، لن نضطر إلى تحديد قيمة لعمود "Personid" (ستتم إضافة قيمة فريدة تلقائيًا):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
عبارة SQL أعلاه من شأنها إدراج سجل جديد في جدول "الأشخاص". سيتم تعيين قيمة فريدة لعمود "الشخص". سيتم تعيين عمود "الاسم الأول" على "لارس" وسيتم تعيين عمود "الاسم الأخير" على "مونسن".
بناء الجملة لـ SQL Server
تحدد عبارة SQL التالية العمود "Personid" ليكون حقل مفتاح أساسي للزيادة التلقائية في جدول "الأشخاص":
CREATE TABLE Persons
(
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
يستخدم MS SQL Server IDENTITY
الكلمة الأساسية لأداء ميزة زيادة تلقائية.
في المثال أعلاه ، قيمة البداية لـ
IDENTITY
1 ، وستزداد بمقدار 1 لكل سجل جديد.
نصيحة: لتحديد أن عمود "Personid" يجب أن يبدأ بالقيمة 10 والزيادة بمقدار 5 ، قم بتغييره إلى IDENTITY(10,5)
.
لإدراج سجل جديد في جدول "الأشخاص" ، لن نضطر إلى تحديد قيمة لعمود "Personid" (ستتم إضافة قيمة فريدة تلقائيًا):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
عبارة SQL أعلاه من شأنها إدراج سجل جديد في جدول "الأشخاص". سيتم تعيين قيمة فريدة لعمود "الشخص". سيتم تعيين عمود "الاسم الأول" على "لارس" وسيتم تعيين عمود "الاسم الأخير" على "مونسن".
بناء الجملة للوصول
تحدد عبارة SQL التالية العمود "Personid" ليكون حقل مفتاح أساسي للزيادة التلقائية في جدول "الأشخاص":
CREATE TABLE Persons
(
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
يستخدم MS Access AUTOINCREMENT
الكلمة الأساسية لأداء ميزة زيادة تلقائية.
بشكل افتراضي ، قيمة البداية لـ AUTOINCREMENT
1 ، وستزداد بمقدار 1 لكل سجل جديد.
نصيحة: لتحديد أن عمود "Personid" يجب أن يبدأ بالقيمة 10 والزيادة بمقدار 5 ، قم بتغيير الزيادة التلقائية إلى
AUTOINCREMENT(10,5)
.
لإدراج سجل جديد في جدول "الأشخاص" ، لن نضطر إلى تحديد قيمة لعمود "Personid" (ستتم إضافة قيمة فريدة تلقائيًا):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
عبارة SQL أعلاه من شأنها إدراج سجل جديد في جدول "الأشخاص". سيتم تعيين قيمة فريدة لعمود "الشخص". سيتم تعيين عمود "الاسم الأول" على "لارس" وسيتم تعيين عمود "الاسم الأخير" على "مونسن".
النحو في Oracle
في Oracle ، يعد الكود أكثر تعقيدًا بعض الشيء.
سيكون عليك إنشاء حقل زيادة تلقائية مع كائن التسلسل (هذا الكائن يولد تسلسلاً رقميًا).
استخدم الصيغة التالية CREATE SEQUENCE
:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
يقوم الكود أعلاه بإنشاء كائن تسلسل يسمى seq_person ، يبدأ بالرقم 1 ويزيد بمقدار 1. كما أنه سيخزن ما يصل إلى 10 قيم للأداء. يحدد خيار التخزين المؤقت عدد قيم التسلسل التي سيتم تخزينها في الذاكرة للوصول بشكل أسرع.
لإدخال سجل جديد في جدول "الأشخاص" ، سيتعين علينا استخدام الوظيفة nextval (تسترد هذه الوظيفة القيمة التالية من التسلسل seq_person):
INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');
عبارة SQL أعلاه من شأنها إدراج سجل جديد في جدول "الأشخاص". سيتم تعيين الرقم التالي لعمود "الشخص" من التسلسل seq_person. سيتم تعيين عمود "الاسم الأول" على "لارس" وسيتم تعيين عمود "الاسم الأخير" على "مونسن".