حقل AUTO INCREMENT SQL
Auto-increment يعمل على إنشاء رقم فريد عند إدراج سجلات جديدة في الجدول.
حقل AUTO INCREMENT
نحن نأمل عادة في إنشاء قيمة الحقل الرئيسي تلقائيًا عند إدراج سجل جديد.
يمكننا إنشاء حقل auto-increment في الجدول.
جملة اللغة المستخدمة في MySQL
تُستخدم هذه الجملة SQL لتحديد "P_Id" كـ auto-increment primary key في جدول "Persons":
CREATE TABLE Persons ( P_Id int NOT NULL AUTO_INCREMENT, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), PRIMARY KEY (P_Id) )
يستخدم MySQL كلمة المفتاح AUTO_INCREMENT للقيام بمهمة auto-increment.
بالافتراض، قيمة البداية لـ AUTO_INCREMENT هي 1، ويتم زيادة كل سجل جديد بـ 1.
لجعل سلسلة AUTO_INCREMENT تبدأ من قيمة أخرى، استخدم الجملة SQL التالية:
ALTER TABLE Persons AUTO_INCREMENT=100
لإدراج سجلات جديدة في جدول "Persons"، لا يجب علينا تحديد قيمة "P_Id" (سيتم إضافة قيمة فريدة تلقائيًا):
INSERT INTO Persons (FirstName,LastName) VALUES ('Bill','Gates')
ستضيف الجملة SQL المذكورة أعلاه سجلاً جديداً في جدول "Persons". سيتم تعيين "P_Id" على قيمة فريدة. سيتم تعيين "FirstName" على "Bill"، وسيتم تعيين عمود "LastName" على "Gates".
جملة اللغة المستخدمة في SQL Server
تُستخدم هذه الجملة SQL لتحديد "P_Id" كـ auto-increment primary key في جدول "Persons":
CREATE TABLE Persons ( P_Id int PRIMARY KEY IDENTITY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
يستخدم MS SQL كلمة المفتاح IDENTITY للقيام بمهمة auto-increment.
بالافتراض، قيمة البداية لـ IDENTITY هي 1، ويتم زيادة كل سجل جديد بـ 1.
لتحديد "P_Id" ليبدأ من 20 ويزداد بـ 10، قم بتغيير identity إلى IDENTITY(20,10):
لإدراج سجلات جديدة في جدول "Persons"، لا يجب علينا تحديد قيمة "P_Id" (سيتم إضافة قيمة فريدة تلقائيًا):
INSERT INTO Persons (FirstName,LastName) VALUES ('Bill','Gates')
ستضيف الجملة SQL المذكورة أعلاه سجلاً جديداً في جدول "Persons". سيتم تعيين "P_Id" على قيمة فريدة. سيتم تعيين "FirstName" على "Bill"، وسيتم تعيين عمود "LastName" على "Gates".
جملة اللغة المستخدمة في Access
تُستخدم هذه الجملة SQL لتحديد "P_Id" كـ auto-increment primary key في جدول "Persons":
CREATE TABLE Persons ( P_Id int PRIMARY KEY AUTOINCREMENT, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
يستخدم MS Access كلمة المفتاح AUTOINCREMENT للقيام بمهمة auto-increment.
بالافتراض، قيمة البداية لـ AUTOINCREMENT هي 1، ويتم زيادة كل سجل جديد بـ 1.
لتحديد "P_Id" ليبدأ من 20 ويزداد بـ 10، قم بتغيير autoincrement إلى AUTOINCREMENT(20,10):
لإدراج سجلات جديدة في جدول "Persons"، لا يجب علينا تحديد قيمة "P_Id" (سيتم إضافة قيمة فريدة تلقائيًا):
INSERT INTO Persons (FirstName,LastName) VALUES ('Bill','Gates')
ستضيف الجملة SQL المذكورة أعلاه سجلاً جديداً في جدول "Persons". سيتم تعيين "P_Id" على قيمة فريدة. سيتم تعيين "FirstName" على "Bill"، وسيتم تعيين عمود "LastName" على "Gates".
الجملة السارية لـ Oracle
في Oracle، يصبح الكود أكثر تعقيداً قليلاً.
يجب عليك استخدام sequence لإنشاء حقل التكامل التلقائي (يولد هذا العنصر سلسلة من الأرقام).
استخدم الجملة CREATE SEQUENCE التالية:
CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10
يخلق الكود المذكور أعلاه سلسلة seq_person بنام seq_person، تبدأ من 1 وتزيد بـ 1. يتم تخزين 10 قيم في سلسلة هذا العنصر لتعزيز الأداء. يحدد خيار CACHE عدد القيم التي يتم تخزينها لتحسين سرعة الوصول.
لإضافة سجل جديد إلى جدول "Persons"، يجب علينا استخدام دالة nextval (التي تعيد القيمة التالية من سلسلة seq_person):
INSERT INTO Persons (P_Id,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen')
الجملة SQL المذكورة أعلاه ستضيف سجلاً جديداً في جدول "Persons". "P_Id" سيتم تعيينه على الرقم التالي من سلسلة seq_person. سيتم تعيين "FirstName" على "Bill"، وسيتم تعيين عمود "LastName" على "Gates".