Friday, 15 February 2013

How to AUTO INCREMENT a Field Value in SQL

How to use AUTO_INCREMENT or IDENTITY Property in SQL
We would like the value of the primary key field to be created automatically every time when a new record is inserted, we can do this with an auto-increment field in a table.
Syntax for MySQL :
The following SQL statement defines the "C_Id" column to be an auto-increment primary key field in the "Customers" table:
CREATE TABLE Customers
(
C_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (C_Id)
)

MySQL uses the AUTO_INCREMENT keyword to perform an auto-increment feature.
By default, the starting value for AUTO_INCREMENT is 1, and it will increment by 1 for each new record.
To let the AUTO_INCREMENT sequence start with another value, use the following SQL statement:
ALTER TABLE Customers AUTO_INCREMENT=50
To insert a new record into the "Customers" table, we will not have to specify a value for the "C_Id" column (a unique value will be added automatically):
INSERT INTO Customers (FirstName,LastName)
VALUES ('King','Fisher')

The SQL statement above would insert a new record into the "Customers" table. The "C_Id" column would be assigned a unique value. The "FirstName" column would be set to "King" and the "LastName" column would be set to "Fisher".

Syntax for SQL Server :
The following SQL statement defines the "C_Id" column to be an auto-increment primary key field in the "Customers" table:
CREATE TABLE Customers
(
C_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
The MS SQL Server uses the IDENTITY keyword to perform an auto-increment feature.
By default, the starting value for IDENTITY is 1, and it will increment by 1 for each new record.
To specify that the "C_Id" column should start at value 10 and increment by 5, change the identity to IDENTITY(10,5).
To insert a new record into the "Customers" table, we will not have to specify a value for the "C_Id" column (a unique value will be added automatically):
INSERT INTO Customers (FirstName,LastName) VALUES ('King','Fisher')

The SQL statement above would insert a new record into the "Customers" table. The "C_Id" column would be assigned a unique value. The "FirstName" column would be set to "King" and the "LastName" column would be set to "Fisher".

Syntax for Access :
The following SQL statement defines the "C_Id" column to be an auto-increment primary key field in the "Customers" table:
CREATE TABLE Customers
(
C_Id PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
The MS Access uses the AUTOINCREMENT keyword to perform an auto-increment feature.
By default, the starting value for AUTOINCREMENT is 1, and it will increment by 1 for each new record.
To specify that the "C_Id" column should start at value 10 and increment by 5, change the autoincrement to AUTOINCREMENT(10,5).
To insert a new record into the "Customers" table, we will not have to specify a value for the "C_Id" column (a unique value will be added automatically):
INSERT INTO Customers (FirstName,LastName) VALUES ('King','Fisher')

The SQL statement above would insert a new record into the "Customers" table. The "C_Id" column would be assigned a unique value. The "FirstName" column would be set to "King" and the "LastName" column would be set to "Fisher".

Syntax for Oracle :
In Oracle the code is a little bit more tricky.
You will have to create an auto-increment field with the sequence object (this object generates a number sequence).
Use the following CREATE SEQUENCE syntax:
CREATE SEQUENCE seq_Customer
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

The code above creates a sequence object called seq_Customer, that starts with 1 and will increment by 1. It will also cache up to 10 values for performance. The cache option specifies how many sequence values will be stored in memory for faster access.

To insert a new record into the "Customers" table, we will have to use the nextval function (this function retrieves the next value from seq_Customer sequence):
INSERT INTO Customers (C_Id,FirstName,LastName) VALUES (seq_Customer.nextval,'King','Fisher')

The SQL statement above would insert a new record into the "Customers" table. The "C_Id" column would be assigned the next number from the seq_Customer sequence. The "FirstName" column would be set to "King" and the "LastName" column would be set to "Fisher".


--------------------------------------------------------------------------------------------------------
Thanks, TAMATAM ; Business Intelligence & Analytics Professional 
--------------------------------------------------------------------------------------------------------

9 comments:

  1. Touche. Outstanding arguments. Keep up the great
    work.

    ReplyDelete
  2. This post is in fact a nice one it helps new the web viewers, who are wishing in favor of
    blogging.

    ReplyDelete
  3. Post writing is also a excitement, if you know then you can write if not
    it is complicated to write.

    ReplyDelete
  4. Way cool! Some extremely valid points! I appreciate you writing this write-up and also the rest
    of the website is also really good.

    ReplyDelete
  5. Remarkable! Its genuinely awesome paragraph, I have
    got much clear idea regarding from this article.

    ReplyDelete
  6. Hey there, You've done an incredible job. I'll definitely digg it and personally recommend to
    my friends. I am confident they will be benefited from this website.

    ReplyDelete
  7. Keep on working, great job!

    ReplyDelete
  8. I've read some just right stuff here. Definitely worth bookmarking for revisiting.
    I wonder how so much attempt you put to create any such magnificent
    informative site.

    ReplyDelete
  9. Nice replies in return of this question with genuine arguments and telling the whole thing regarding
    that.

    ReplyDelete

Hi User, Thank You for visiting My Blog. Please post your open Feedback only related to this Blog Posts. Please note that I cannot respond to the Anonymous Comments.

Subscribe to Blog Posts by Email

ExcelKingdom-Popular Posts