Skip to main content

MySql: Auto_Increment Column: All About Insert Values

Let's say we want to create a table in which each row will get unique id while inserting new row, means while we're inserting new row that particular column-value will be automatically inserted with unique integer value.
In this scenario we can use "AUTO_INCREMENT" column type.

-- drop table if exists
DROP TABLE IF EXISTS `TEST_AUTO_INCREMENT`

-- create a dummy table
CREATE TABLE TEST_AUTO_INCREMENT
  (
     Id INT AUTO_INCREMENT PRIMARY KEY
     , FirstName CHAR(40)
  )

-- AUTO_INCREMENT is applicable only with following data-types (integral data-types)
  TINYINT
  SMALLINT
  MEDIUMINT
  INT
  BIGINT

  DOUBLE

-- we can insert auto-increment values in different ways
-- If want to use the database generated vaules

  either don't include the AUTO_INCREMENT column into the insert statement
 
INSERT INTO TEST_AUTO_INCREMENT (FirstName) VALUES ('SriRam');


  or if we're considering that column too then use (0, '', NULL, DEFAULT) key-word or SET qualifier

INSERT INTO TEST_AUTO_INCREMENT (Id, FirstName) VALUES ('','Ram');
INSERT INTO TEST_AUTO_INCREMENT (Id, FirstName) VALUES (DEFAULT,'Shyam');
INSERT INTO TEST_AUTO_INCREMENT (Id, FirstName) VALUES (NULL,'Mohan');
INSERT INTO TEST_AUTO_INCREMENT (Id, FirstName) VALUES (0,'Sohan');


INSERT INTO TEST_AUTO_INCREMENT SET FirstName='ShyamMohan-1';

-- If we want to use the self-specified values
INSERT INTO TEST_AUTO_INCREMENT VALUES (11,'Krishna');
INSERT INTO TEST_AUTO_INCREMENT SET Id = 20, FirstName='ShyamMohan-2';




After executing all these statements we can see the result like this.

  
Auto_Increment Insert Queires & Result

In next section we'll discuss how to reset the increment value, should we use LAST_INSERT_ID()
or not, how does auto_increment behave after restarting MySql instance, what happen if column's max size got exceeded (e.g. if we're using tinyint as column data-type and trying to insert values as 234).

Comments

Popular posts from this blog

How to install Zen-coding plugin

As a web-developer, irrespective of the technologies (java, c-sharp, python, php e.t.c.…), we used to write CSS code to make our web-pages looks good if not at least we’re involved in write html codes. What if there is some tool to whom you give some instruction and that tool generates a good, well formatted html tags for you. These kind of coding is possible and known as “ Zen coding ” and there are lots of plug-in available from different vendors. We’re going to  discuss the steps to install this “zen-coding” plugin for “visual studio, eclipse, sublime-text & notepad++ in next few lines. Follow the below steps to install "zen-coding" plugin based on your editor.  Steps to install zen-coding plugin for (visual studio, eclipse, sublime-text,notepad++) -- -- For Visual Studio 1. Go to "Tools" -> "Extensions and Updates" 2. It'll open the "Extensions and Updates windows"    Select online form Left hand menu items ent...

Azure SQL - Re-build index and update stats

Useful script to rebuild table indexes and update stats You can update the queries based on your requirement. To update the table stats --Query to update the table stats SELECT N'UPDATE STATISTICS ' + t.TABLE_SCHEMA + '.' + t.TABLE_NAME + ' ;' FROM INFORMATION_SCHEMA.tables AS t WHERE t.TABLE_TYPE = N'BASE table'; GO To re-build table indexes: --To rebuild table index DECLARE @myDatabaseName NVARCHAR(255) = N'your-database-name'; DECLARE @runningTableName NVARCHAR(255); DECLARE @cmd NVARCHAR(1000); DECLARE @name NVARCHAR(100)= 'your-database-name'; -- Populate the database cursor. DECLARE myDatabaseLevelCursor CURSOR READ_ONLY FOR SELECT @name; OPEN myDatabaseLevelCursor; FETCH NEXT FROM myDatabaseLevelCursor INTO @myDatabaseName; WHILE @@FETCH_STATUS = 0 BEGIN -- In this command we're declaring table level cursor SET @cmd = 'DECLARE myTableCursor CURSOR READ_ONLY FOR SELECT '...

EFCore - Scaffold-DbContext how to use

EFCore versions, we don't have GUI to manage the DB-entities & dbContext like we used to have with EF6 (or EF5/4 version). With EFCore we've the Scaffold-DbContext command which helps us to create entities & DB context from our DB-objects.  Let's see how to use Scaffold-DbContext: Assume we're connecting with SQL Server so after creating a sample project you'll have to install EFCore related libraries as mentioned below.  Install entity-framework-core for SQL Server, at this time 3.1.9 is the latest stable version   Microsoft.EntityFrameworkcore   Microsoft.EntityFrameworkCore.SqlServer  To use Scaffold-DbContext, following two NuGet packages are required Microsoft.EntityFrameworkCore.Tools  Microsoft.EntityFrameworkCore.Design Let's say we've two DB tables (e.g. dbo.Employees & dbo.Users )  Now let's see how to use Scaffold-DbContext to create c-...