Updated April 3, 2023
Definition of SQLite autoincrement
SQLite provides the auto-increment facility to the user, in which that we increment integer value automatically as per the requirement. Basically, it is applicable for roll number or we can say if we need to generate any id that time we can use AUTOINCREMENT property. Without specifying an AUTO-INCREMENT option then we get a rowid column and it is used to 64 bit signed integer numbers that are helpful to uniquely identify rows in the table. If we need to use an increment column field then use AUTOINCREMENT keyword and it can be used with an only integer value.
Syntax:
create table specified table name(colm name 1 integer autoincrement, colm name 2 data type, colm name 3 data type, ……..coln name N data type);
Explanation
In the above syntax, we create a table statement to use the AUTOINCREMENT property of SQLite, here we use different parameters as follows.
- specified table name: specified table name means the actual table name that we need to create.
- colm name 1: It is used as column name from a specified table name that we need to add or in other word we say that attribute of the table.
- Integer: it is the data type of the specified table name.
- autoincrement: It is a keyword used with an integer data type.
How SQLite autoincrement function works?
Now let’s see how AUTOINCREMENT works in SQLite as follows. Basically, there are two ways to create an AUTOINCREMENT column as follows.
-
Without AUTOINCREMENT Keyword
At the point when we declared column data type as INTEGER with PRIMARY KEY constraint, then it will automatically increment. Thus, you don’t really have to use the AUTOINCREMENT keyword to increment the value of the column.
At the point when you do this, any NULL qualities are changed over into the current ROWID. All in all, in the event that you embed NULL into that section, it will be changed over to the current ROWID. So we can say that column becomes an alias for the ROWID. It provides the different names to access the ROWID such as ROWID, _ROWID_, and OID.
A main advantage of the AUTOINCREMENT keyword is that it lessens CPU, memory, disk space, and disk I/O overhead.
On the other hand, we can’t give a guarantee that all rows will be incremented in any particular order because of the auto-increment working structure. At the point when you preclude the AUTOINCREMENT catchphrase, when ROWID is equivalent to the biggest conceivable number (9223372036854775807), SQLite will attempt to locate an unused positive ROWID at arbitrary.
Sometimes, as long as you never utilize the most extreme ROWID worth and you never erase the passage in the table with the biggest ROWID, this technique will produce monotonically expanding special ROWIDs.
-
With AUTOINCREMENT Keyword
When we use this method, there are slightly different types of algorithms used to calculate the auto-increment value. At the point when you use the AUTOINCREMENT keyword, the ROWID picked for the new column is at any rate one bigger than the biggest ROWID that has at any point before existed in that equivalent table or we can say that, it will not return and reuse recently erased ROWID esteems. When the biggest conceivable ROWID has been embedded, no new embeds are permitted. Any endeavor to embed another line will come up short with an SQLITE_FULL blunder. Hence utilizing this strategy ensures that the ROWIDs are monotonically expanding. Finally, we can say the value will be incremented by 1 which means it will never decrease.
Examples
Now let’s see the different examples of AUTOINCREMENT as follows. Create a new table with two column names by using the following statement as follows.
create table sample (name text not null, address text not null);
.table
Explanation
In the above example, we use a create table statement to create a new table name as a sample with two attributes such as name and address with text data type as shown in the above statement. The end out of the above statement we illustrated by using the following screenshot.
Now insert some records into the sample table by using insert into the statement as follows.
insert into sample (name , address) values("Johan", "Mumbai"), ("Jenny", "Delhi");
After the insertion operation, we can use a select statement to see the inserted records as follows.
select rowed, name, address from sample;
Explanation
By using the above statement we can see the inserted records but see, what happens, here we can’t mention an AUTOINCREMENT keyword till it shows incremented integer values in order. That means there is no need to specify the AUTOINCREMENT keyword because column name and rowid automatically assign integer value when we perform the insert operation and column name uses rowid as an alias. The end out of the above statement we illustrated by using the following screenshot.
Now see another example with a primary key as follows. Create a new table with the primary key constraint as follows.
create table emp (emp_id integer primary key,emp_name text not null, address text not null);
Explanation
Here we created a new table name as emp and in this case, the emp_id column is referred as rowid column.
Now perform the insert operation as follows.
insert into emp (emp_id, emp_name, address) values(1254541, "Johan", "Mumbai");
Now see inserted records by using the select statement as follows.
select * from emp;
The end out of the above statement we illustrated by using the following screenshot.
Now insert one more row as follows without emp_id as follows.
insert into emp (emp_name, address) values( "Jenny", "Mumbai");
Explanation
Now compare both emp_id clearly shows incremented integer values. The end out of the above statement we illustrated by using the following screenshot.
Now let’s see how we can use the AUTOINCREMENT keyword as follows.
create table college (stud_id integer primary key AUTOINCREMENT, name text not null, address text not null);
Now we have a table now insert some records by using insert into the statement as follows.
insert into college (stud_id, name, address) values(10, "Jenny", "Mumabi");
Now see inserted records by using select statements as follows.
select * from college;
The end out of the above statement we illustrated by using the following screenshot.
Now insert one more row as follows.
insert into college(name, addres) values( "Krish", "Mumbai");
Then it shows the error message because stud_id did not reuse.
Conclusion
We hope from this article you have understood about the SQLite AUTOINCREMENT. From the above article, we see different examples of SQLite AUTOINCREMENT. We also learned the rules of SQLite AUTOINCREMENT. From this article, we learned how and when we use SQLite AUTOINCREMENT.
Recommended Articles
We hope that this EDUCBA information on “SQLite autoincrement” was beneficial to you. You can view EDUCBA’s recommended articles for more information.