Мне нужно создать таблицу со столбцом первичного ключа автоинкремента> я пробовал со следующим кодом, но он выдает ошибку.
Мой код:
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 --> "+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);
}
}
}
Ошибка при создании таблицы --> net.ucanaccess.jdbc.UcanaccessSQLException: тип не найден или у пользователя отсутствуют привилегии: AUTOINCREMENT
Убедитесь, что вы используете последнюю версию UCanAccess, доступную здесь. .