Изменить значения AutoNumber при вставке строк с помощью UCanAccess

При использовании executeUpdate Метод UCanAccess, система всегда выбирает номер строки для меня. Однако после того, как я удаляю свои строки и добавляю новые, строки не начинаются с начала (например, я удалил 3 строки, затем он помечает следующие 3 строки как 4, 5, а также 6). Есть ли способ, которым я могу исправить это или назвать строки самостоятельно? Вот мой код:

statement.executeUpdate("INSERT INTO myDB2"+ " ( columnRows,  columnA, columnB)"
    + " VALUES ( "+rows+", "+a+", "+b+")");`

1 ответ

Решение

Сброс следующего значения AutoNumber

После удаления строк вы можете сбросить начальные значения AutoNumber, открыв базу данных в Access и выполнив операцию "Сжатие и восстановление базы данных". UCanAccess в настоящее время не может сбросить само начальное значение.

Вставка произвольных значений в столбец AutoNumber

Начиная с версии 4.0.2, UCanAccess может вставлять произвольные положительные значения в столбец AutoNumber (Long Integer, Increment). Например, с таблицей с именем [Клиент]:

ClientID - AutoNumber
Имя - Текст (50)

мы можем

Statement st = conn.createStatement();
st.execute("DISABLE AUTOINCREMENT ON Client");
st.execute("INSERT INTO Client (ClientID, FirstName) VALUES (123, 'Gord')");

Для получения более подробной информации см. Сообщение в блоге здесь.

Версия 4.0.3 (еще не выпущенная) расширяет эту возможность, позволяя вставлять произвольные значения, которые меньше или равны нулю.

Другие вопросы по тегам