Creating Tables with AUTO_INCREMENT Columns

This section describes how to create a table with an AUTO_INCREMENT column.

Different database servers have different ways to support columns with automatically incremented values. MySQL uses the key word AUTO_INCREMENT to specify an auto-incrementing column.

In order to try AUTO_INCREMENT columns and provide a test table for testing DML (Data Manipulation Statements), I wrote the following program to create a table called "Profile" with the primary key column defined as an AUTO_INCREMENT column:

/* MySqlAutoIncrement.java
 - Copyright (c) 2015, HerongYang.com, All Rights Reserved.
 */
import java.sql.*;
import javax.sql.*;
public class MySqlAutoIncrement {
  public static void main(String [] args) {
    Connection con = null;
    try {
    	
// Setting up the DataSource object
      com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds 
        = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource();
      ds.setServerName("localhost");
      ds.setPortNumber(3306);
      ds.setDatabaseName("HerongDB");
      ds.setUser("Herong");
      ds.setPassword("TopSecret");

// Getting a connection object
      con = ds.getConnection();

// Creating a database table
      Statement sta = con.createStatement(); 
      int count = sta.executeUpdate(
        "CREATE TABLE Profile ("
        + " ID INTEGER PRIMARY KEY AUTO_INCREMENT,"
        + " FirstName VARCHAR(20) NOT NULL,"
        + " LastName VARCHAR(20),"
        + " Point REAL DEFAULT 0.0,"
        + " BirthDate DATE DEFAULT '1988-12-31',"
        + " ModTime TIMESTAMP DEFAULT '2006-12-31 23:59:59.999')");
      System.out.println("Table created.");
      sta.close();

      con.close();        
    } catch (Exception e) {
      System.err.println("Exception: "+e.getMessage());
    }
  }
}

When you run this program, table Profile will be created. But you run it again, you will get an exception:

C:\herong>\Progra~1\java\jdk1.8.0_45\bin\javac 
   -cp .;\local\lib\mysql-connector-java-5.1.36-bin.jar 
   MySqlAutoIncrement.java

C:\herong>\Progra~1\java\jdk1.8.0_45\bin\java 
   -cp .;\local\lib\mysql-connector-java-5.1.36-bin.jar 
   MySqlAutoIncrement

Table created.

C:\herong>\Progra~1\java\jdk1.8.0_45\bin\java 
   -cp .;\local\lib\mysql-connector-java-5.1.36-bin.jar 
   MySqlAutoIncrement

Exception: Table 'profile' already exists

Last update: 2015.

Table of Contents

 About This Book

 JDBC (Java Database Connectivity) Introduction

 JDK (Java SE) Installation

 Installing and Running Java DB - Derby

 Derby (Java DB) JDBC Driver

 Derby (Java DB) JDBC DataSource Objects

 Java DB (Derby) - DML Statements

 Java DB (Derby) - ResultSet Objects of Queries

 Java DB (Derby) - PreparedStatement

 MySQL Installation on Windows

MySQL JDBC Driver (MySQL Connector/J)

 MySQL Connector/J - Download and Installation

 Loading JDBC Driver for MySQL Server

 JDBC Driver Connection URL

 Creating Connections with DataSource Class

 Getting Driver and Server Information

Creating Tables with AUTO_INCREMENT Columns

 "INSERT INTO" Statements

 MySQL - PreparedStatement

 MySQL - Reference Implementation of JdbcRowSet

 MySQL - JBDC CallableStatement

 MySQL CLOB (Character Large Object) - TEXT

 MySQL BLOB (Binary Large Object) - BLOB

 Oracle Express Edition Installation on Windows

 Oracle JDBC Drivers

 Oracle - Reference Implementation of JdbcRowSet

 Oracle - PreparedStatement

 Oracle - JBDC CallableStatement

 Oracle CLOB (Character Large Object) - TEXT

 Oracle BLOB (Binary Large Object) - BLOB

 Microsoft SQL Server 2005 Express Edition

 Microsoft JDBC Driver for SQL Server - sqljdbc42.jar

 Microsoft JDBC Driver - Query Statements and Result Sets

 Microsoft JDBC Driver - DatabaseMetaData Object

 Microsoft JDBC Driver - DDL Statements

 Microsoft JDBC Driver - DML Statements

 SQL Server - PreparedStatement

 SQL Server CLOB (Character Large Object) - TEXT

 SQL Server BLOB (Binary Large Object) - BLOB

 JDBC-ODBC Bridge Driver - sun.jdbc.odbc.JdbcOdbcDriver

 JDBC-ODBC Bridge Driver - Flat Text Files

 JDBC-ODBC Bridge Driver - MS Access

 JDBC-ODBC Bridge Driver - MS SQL Server

 Summary of JDBC Drivers and Database Servers

 Additional Tutorial Notes to Be Added

 Outdated Tutorials

 References

 PDF Printing Version