вставка в автоинкрементный столбец в sqlite - PullRequest
2 голосов
/ 10 августа 2011

У меня есть таблица в sqlite (в java), она имеет 3 столбца, идентификатор которых автокремментируется.

stat.executeUpdate("create table Info (ID INTEGER PRIMARY KEY AUTOINCREMENT, age int, point int);");

, когда я хочу вставить в эту таблицу, у меня есть эта функция

DataBase.databaseInsertInfoTable(data.age, data.point);

и

  public static void databaseInfoTable(int age,int point) throws Exception {

  PreparedStatement prepInfo = conn.prepareStatement(
     "insert into Info (age, point)values (?, ?);");
        prepInfo.setInt(2, age);
        prepInfo.setInt(3, point);
        prepInfo.addBatch();
        prepInfo.executeBatch();
        conn.setAutoCommit(true);
       prepInfo.close();
  }

У меня ошибка, которая говорит о неверном параметре. Я хотел вставить нулевое значение для идентификатора, но он тоже не работает, поэтому я опускаю идентификатор при вставке!что мне делать?

1 Ответ

2 голосов
/ 10 августа 2011

Нельзя вставить нулевое значение для поля AUTOINCREMENT.Удалите точку с запятой в конце оператора и посмотрите, подходит ли вам это.

РЕДАКТИРОВАТЬ: попробуйте это.

public static void databaseInfoTable(int age,int point) throws Exception {
  PreparedStatement prepInfo = conn.prepareStatement(
     "insert into Info (age, point)values (?, ?)");
        prepInfo.setInt(1, age);
        prepInfo.setInt(2, point);
        prepInfo.addBatch();
conn.setAutoCommit(false);
prep.executeBatch();
conn.commit();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...