فصل سی و پنجم :
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
مفاهیم و موضوعات این فصل عبارتند از :