×

AUTO INCREMENT در SQLite

فصل سی و پنجم :

AUTO INCREMENT در SQLite

از کلمه کلیدی AUTOINCREMENT استفاده میشود تا مقدار ی فیلد در جدول را بطور اتوماتیک اضافه کنیم (مثل شماره ردیف در فاکتور های حسابداری)
نکته مهم این است که ان کلمه کلیدی فقط با دیتاتایپ INTEGER قابل استفاده است .
CREATE TABLE table_name(
column1 INTEGER AUTOINCREMENT,
column2 datatype,
column3 datatype,
.....
columnN datatype,
);

یعنی مشخص میکنیم که بازای هر رکورد جدید که در دیتابیس درج میشود ود دیتابیس یک مقداری را به این فیلد اختصاص دهد به اینصور که مقدار رکورد قبلی را بعلاوه یک میکند .
حالا می خواهیم جدول COMPANY را بگونه ایی بسازیم تا دیگراحتیاجی به وارد کردن فیلد ID در هنگام درج نباشد و خود دیتابیس هر بار یک ID را به هر رکورد اختصاص دهد.
sqlite> CREATE TABLE COMPANY(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);

حالا دستورات ذیل را اجرا کنید :
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Paul', 32, 'California', 20000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('Allen', 25, 'Texas', 15000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('Teddy', 23, 'Norway', 20000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Mark', 25, 'Rich-Mond ', 65000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'David', 27, 'Texas', 85000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Kim', 22, 'South-Hall', 45000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'James', 24, 'Houston', 10000.00 );

همانطور که میبینید در دستورات INSERT اصلا مقداری به ID اختصاص داده نشده است .
بعد از اجرای دستورات بالا در جدول COMPANY خواهیم داشت :

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

                                        


مفاهیم و موضوعات این فصل عبارتند از :

  • AUTO INCREMENT در SQLite

vatantop
نظرات و سوالات درج سوال/ نظر