MySQL auto incremented field to generate unique ID for the record

We can get a unique auto-generated number from MySQL by creating an auto-incremented field. MySQL will generate a unique number by incrementing the last number of the table and will automatically add to the auto incremented field.

This is the best way to generate a trouble ticket number for a help desk system. In a school, if a new student joins then all details of the student we can feed to student table and while using the insert query. MySQL will add one auto generated a unique number to this auto incremented field. We need not have to specify any data in our query while adding the other details ( except auto-incremented field data).

Getting the unique ID

After successfully adding the record we can get this unique number by using mysql_insert_id(). Read the details on how to get this number by visiting the tutorial here. Now let us try how to create such an auto incremented field.

We have to make auto increment field integer ( obvious ) and also unique. The property set to auto increment. Here is the sql to create a student table with one auto increment field to assign one unique student ID.
CREATE TABLE `student` ( 
`student_id` INT( 3 ) NOT NULL AUTO_INCREMENT,
`name` VARCHAR( 25 ) NOT NULL ,
`email` VARCHAR( 50 ) NOT NULL ,
UNIQUE (
`student_id`
)
);
Now we will add one record to this table using one insert command.
INSERT INTO `student` (  `name` , `email` )
VALUES (  'john', 'john@sitename.com' );
You will see automatically the student_id field will be added with 1 and for next record it will get the next incremented value 2.

This way we can generate auto increment id for each record in our table.

Use lastInsertId() PHP PDO function

Use insert_id() PHP MySQLI function

Examples of uses of autoincrement field

  • Assigning unique userid to member after signup.
  • Assigning employee number after adding details of a new employ to our employ table.
  • Giving tracking ID for a consignment after it is received for dispatch.
  • Application Number generated after successful registration for an examination.
Note that all these numbers are unique and system generated.

Maximum value of inserted id

The maximum value of the inserted id depends on the type of numeric field we have selected. For TINYINT it will take value up to 127 for unsigned it is 255. After this the creation of auto increment ID will fail. So take care while creating the auto increment field to match your future requirements.

Starting from higher number

Change the auto increment field like this
ALTER TABLE student AUTO_INCREMENT = 50;

Pre defined value for a MySQL auto increment field

We can start an auto increment field from a pre-defined value. For example when we issue a student ID number, where student ID is an auto increment field we can generate IDs with values 100001 from the first record. This helps as we don't want to give a number like 1 to the first student and end with number 10004. This way we can have the first number as 100001 and last number 110005. This way all the students will have six-digit number.

This we can take care while creating the table by adding auto increment value at the end. Here is the SQL for creating a student table with auto increment field is set to 100000
CREATE TABLE student (
  id int(7) NOT NULL auto_increment,
  name varchar(50) NOT NULL default '',
  class varchar(10) NOT NULL default '',
  mark int(3) NOT NULL default '0',
  sex varchar(6) NOT NULL default 'male',
  UNIQUE KEY id (id)
) auto_increment=100000 ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
If you delete all records by truncate table sql command then while adding the first record the auto increment field will start from 1.

zerofill

We can fill the number by adding zeros ( 00001 or 00025 ) by using zerofill.
CREATE TABLE IF NOT EXISTS `student4` (
   `id` int(5) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `name` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT '',
  `class` varchar(10) CHARACTER SET utf8 NOT NULL DEFAULT '',
  `mark` int(3) NOT NULL DEFAULT '0',
  `gender` varchar(6) CHARACTER SET utf8 NOT NULL DEFAULT 'male',
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=38 ;

Alter table and make one numeric field as auto increment

Read here on how to create one incremental auto generated record number in MSSQL table.
Collecting Unique ID after inserting data
How to delete Records in different tabels
PHP MySQL functions Connecting to MySQL database

Subscribe to our YouTube Channel here


Subscribe

* indicates required
Subscribe to plus2net

    plus2net.com
    Senthu

    07-12-2009

    How to export the tables in .sql format from phpmysql db by using in phpMySQL ?? Thank you SENTHU
    dhananjay

    13-09-2010

    goto phpmyadmin, select database , select table using checkbox, go downward select option mysql then zip and click on go it will ask you where u want to save your table .
    Nitin

    09-11-2011

    is it compulsory to define auto increment field unique or primary key constraint ?

    Post your comments , suggestion , error , requirements etc here





    SQL Video Tutorials










    We use cookies to improve your browsing experience. . Learn more
    HTML MySQL PHP JavaScript ASP Photoshop Articles FORUM . Contact us
    ©2000-2024 plus2net.com All rights reserved worldwide Privacy Policy Disclaimer