@Override public Sql[] generateSql( final AddAutoIncrementStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) { List<Sql> statements = new ArrayList<Sql>(); // define alter table logic SQLiteDatabase.AlterTableVisitor rename_alter_visitor = new SQLiteDatabase.AlterTableVisitor() { @Override public ColumnConfig[] getColumnsToAdd() { return new ColumnConfig[0]; } @Override public boolean copyThisColumn(ColumnConfig column) { return true; } @Override public boolean createThisColumn(ColumnConfig column) { if (column.getName().equals(statement.getColumnName())) { column.setAutoIncrement(true); column.setType("INTEGER"); } return true; } @Override public boolean createThisIndex(Index index) { return true; } }; try { // alter table for (SqlStatement generatedStatement : SQLiteDatabase.getAlterTableStatements( rename_alter_visitor, database, statement.getCatalogName(), statement.getSchemaName(), statement.getTableName())) { statements.addAll( Arrays.asList( SqlGeneratorFactory.getInstance().generateSql(generatedStatement, database))); } } catch (DatabaseException e) { e.printStackTrace(); } return statements.toArray(new Sql[statements.size()]); }