2016-12-12 3 views
-1

Я делаю Android-приложение, в котором есть Список пользователей. И что я имею таблицу пользователей, где я поддерживаю ID пользователей с использованием AUTO_INCREMENTКак переставить AUTO_INCREMENT Столбец в SQLite (Android)

db.execSQL ("создать таблицу пользователей (u_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, u_name TEXT, u_username текст)");

Теперь моя проблема в том, что когда я пытаюсь удалить пользователя из базы данных через ListView.

Но после удаления порядок следования таков: 1,2,4,5,7

Итак, как я могу изменить столбец AUTO_INCREMENT для: 1,2,3,4,5, как это.

Как запросить эту вещь в базе данных SQLite.

Пожалуйста, помогите мне, я застрял.

+1

и этот заказ ('1,2,4,5,7') в порядке, почему вы хотите его изменить? на вашей улице есть дома с номерами 1, 2, 3, 4, 5, 6, 7 и т. д. до 20, твой 5, потом кто-то богатый купил дома 2, 3 и 4, снес их и построил огромный дом на эти посылки, теперь, если номер вашего дома будет изменен на номер 3? конечно, не – pskink

ответ

0

AUTO_INCREMENT всегда будет увеличиваться на единицу от последней вставленной записи, независимо от того, существует ли эта запись или нет. если последовательный порядок без пробелов - это то, что вы хотите, автоматический инкрементный идентификатор не является правильным способом достижения этого. Добавьте еще одно поле int, в котором вы вручную отслеживаете это упорядочение.

+0

Как и в MySQL, есть способ достичь этого: Сбросить поле автоматического приращения ALTER TABLE 'table' AUTO_INCREMENT = number; так есть ли какой-нибудь способ в SQLite? – Shreedhar

+0

Позвольте мне объяснить вам весь сценарий: У меня есть ListView UsersListView (On Activity 1). Где я показываю информацию о пользователях: Полное имя, имя пользователя и возраст. OnItemLongClick Я открываю другое мероприятие, в котором я показываю данные пользователя и , позволяющие пользователю редактировать свои данные и удалять весь пользователь. Таким образом, удаление происходит на другом мероприятии. И я сохраняю эти данные в базе данных. Так что я должен что-то передать через OnLongClickListener, через который я могу обновлять и удалять этих Пользователей. – Shreedhar

+0

Вот почему мне нужен уникальный идентификатор для этого. и OnLongClick i ll получают только позицию, которая будет меняться после удаления строк. Так вот почему я хочу сбросить идентификаторы в базу данных. Теперь моя проблема? – Shreedhar

Смежные вопросы