رفتن به مطلب

مفهوم AUTO INCREMENT در SQLite


arastooms

ارسال‌های توصیه شده

AUTO INCREMENT در SQLite

از کلمه کلیدی AUTOINCREMENT استفاده میشود تا مقدار ی فیلد در جدول را بطور اتوماتیک اضافه کنیم (مثل شماره ردیف id در فاکتور های حسابداری) 
نکته مهم این است که ان کلمه کلیدی فقط با دیتاتایپ 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

                                        

منبع 

منبع

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...