title: Not able to create Autoincrement primary key field in ms-access using java
body: <p>I need to create a table with a autoincrement primary key column> i tried with the following code but it throws error .</p>
  
  <p><strong>My code:</strong> </p>
  
  <pre><code>     CreateTableAccess.CreateAccessTable("CREATE TABLE D_Centre\n"
              + "(\n"
              + "    SlNo AUTOINCREMENT,\n"
              + "    CentreID VARCHAR,\n"
              + "    CentreName VARCHAR,\n"
              + "    [Createddate] DateTime,  \n"
              + "    CreatedBy VARCHAR, \n"
              + "    [Updateddate] DateTime\n"
             + ")", "D_Centre");
  
  
      public static void CreateAccessTable(String sqlscript, String tablename )
  {
      String dbFileSpec = DataEntryScreen.homedirectory+"/"+"Dataentry.accdb";
      Connection conn = null ;
      try {
          conn = DriverManager.getConnection("jdbc:ucanaccess://" + dbFileSpec);
      } catch (SQLException ex) {
          Logger.getLogger(CreateTableAccess.class.getName()).log(Level.SEVERE, null, ex);
      }
          DatabaseMetaData dmd = null;
      try {
          dmd = conn.getMetaData();
      } catch (SQLException ex) {
          Logger.getLogger(CreateTableAccess.class.getName()).log(Level.SEVERE, null, ex);
      }
              ResultSet rs = null;
      try {
          rs = dmd.getTables(null, null, tablename , new String[]{"TABLE"});
      } catch (SQLException ex) {
          Logger.getLogger(CreateTableAccess.class.getName()).log(Level.SEVERE, null, ex);
      }
          // }
          {
          try {
              if (rs.next()) {
                  System.out.println("Table ["+tablename+"] already exists.");
              } else {
                  System.out.println("Table ["+tablename+"] does not exist.");
                  Statement s = conn.createStatement();
                    s.executeUpdate(sqlscript);
                  System.out.println("Table ["+tablename+"] created.");
              }
          } catch (SQLException ex) {
              Logger.getLogger(CreateTableAccess.class.getName()).log(Level.SEVERE, null, ex);
              System.err.println("Error in table creation  --&gt; "+ex.toString());
          }
          try {
              conn.commit();
          } catch (SQLException ex) {
              Logger.getLogger(CreateTableAccess.class.getName()).log(Level.SEVERE, null, ex);
          }
          try {
              conn.close();
          } catch (SQLException ex) {
              Logger.getLogger(CreateTableAccess.class.getName()).log(Level.SEVERE, null, ex);
          }
  
  }
  }  
  </code></pre>
  
  <p><strong>Error:</strong> 
  Nov 04, 2014 3:39:28 PM org.DataEntryApplication.view.CreateTableAccess CreateAccessTable
  SEVERE: null
  net.ucanaccess.jdbc.UcanaccessSQLException: type not found or user lacks privilege: AUTOINCREMENT
      at net.ucanaccess.jdbc.UcanaccessStatement.executeUpdate(UcanaccessStatement.java:164)
      at org.DataEntryApplication.view.CreateTableAccess.CreateAccessTable(CreateTableAccess.java:53)
      at org.DataEntryApplication.view.AccessProcess.accessProcess(AccessProcess.java:40)
      at org.DataEntryApplication.view.DataEntryScreen.addComponentsToPane(DataEntryScreen.java:188)
      at org.DataEntryApplication.view.DataEntryScreen.createAndShowGUI(DataEntryScreen.java:1092)
      at org.DataEntryApplication.view.Login$7.actionPerformed(Login.java:277)
      at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
      at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
      at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
      at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
      at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
      at java.awt.Component.processMouseEvent(Component.java:6505)
      at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
      at java.awt.Component.processEvent(Component.java:6270)
      at java.awt.Container.processEvent(Container.java:2229)
      at java.awt.Component.dispatchEventImpl(Component.java:4861)
      at java.awt.Container.dispatchEventImpl(Container.java:2287)
      at java.awt.Component.dispatchEvent(Component.java:4687)
      at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
      at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
      at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
      at java.awt.Container.dispatchEventImpl(Container.java:2273)
      at java.awt.Window.dispatchEventImpl(Window.java:2719)
      at java.awt.Component.dispatchEvent(Component.java:4687)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
      at java.awt.EventQueue.access$200(EventQueue.java:103)
      at java.awt.EventQueue$3.run(EventQueue.java:694)
      at java.awt.EventQueue$3.run(EventQueue.java:692)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
      at java.awt.EventQueue$4.run(EventQueue.java:708)
      at java.awt.EventQueue$4.run(EventQueue.java:706)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
  Caused by: java.sql.SQLException: type not found or user lacks privilege: AUTOINCREMENT
      at net.ucanaccess.jdbc.AbstractExecute.addDDLCommand(AbstractExecute.java:105)
      at net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java:127)
      at net.ucanaccess.jdbc.ExecuteUpdate.execute(ExecuteUpdate.java:56)
      at net.ucanaccess.jdbc.UcanaccessStatement.executeUpdate(UcanaccessStatement.java:162)
      ... 41 more</p>
  
  <p>Error in table creation  --> net.ucanaccess.jdbc.UcanaccessSQLException: type not found or user lacks privilege: AUTOINCREMENT</p>