2016-12-12 5 views
-1

私は、ユーザのリストがあるAndroidアプリケーションを作っています。 そして、そのために私は私がAUTO_INCREMENTSQLiteでAUTO_INCREMENTカラムを再配置する方法(Android)

db.execSQLを( "表のユーザー(U_ID INTEGER PRIMARY KEY AUTOINCREMENT、NOT NULL、u_name TEXT、u_usernameテキスト)を作成する")を使用して、ユーザーのIDを維持していますUsersテーブルを持っています。

私の問題は、ListViewからデータベースからユーザーを削除しようとしていることです。

しかし、シーケンス順序を削除した後

はこのようなものです。このような1,2,3,4,5:

1,2,4,5,7は、どのようにiはAUTO_INCREMENTカラムを並べ替えることができます。

SQLiteデータベースでこのことを照会する方法。

助けてください、私は立ち往生しています。

+1

この順番( '1,2,4,5,7')はちょうどいいですが、なぜそれを変更したいのですか?あなたの通りに1,2,3,4,5,6,7などの数字の家があります。あなたのものは5、あなたの家は2,3,4の家を購入し、それらを破壊し、大きな家を建てました。それらの小包、今あなたの家の番号は3番に変更する必要がありますか?もちろんそうではありません – pskink

答えて

0

AUTO_INCREMENTは、そのレコードがまだ存在するかどうかにかかわらず、最後に挿入されたレコードから常に1だけインクリメントされます。ギャップのない順番の並べ替えが必要な場合、自動インクリメンタルIDはそれを実現する適切な方法ではありません。別のintフィールドを追加して、この順序を手動で追跡します。

+0

MySQLのように、これを実現する方法があります。 自動インクリメントフィールドをリセットしてください。 ALTER TABLE 'table' AUTO_INCREMENT = number; このようにSQLiteには何らかの方法がありますか? – Shreedhar

+0

シナリオ全体を説明しましょう: 私はListView UsersListView(On Activity 1)を持っています。 ここでは、次のようなユーザーの詳細を表示しています。 氏名、ユーザー名と年齢。 OnItemLongClick私はユーザーの詳細を表示している別のアクティビティ& を開いて、ユーザーが詳細を編集してユーザー全体を削除できるようにしています。 したがって、削除は別のアクティビティにあります。 そして私はそれらの詳細をデータベースに保存しています。 私はOnLongClickListenerを介してそこに何かを渡す必要があります。これを介して、それらのユーザーを更新して削除することができます。 – Shreedhar

+0

それはなぜ私はそれを行うために一意のIDが必要です。 とOnLongClickは、行の削除後に変化する位置のみを取得します。 なぜ私はIDをデータベースにリセットしたいのですか? 今問題がありますか? – Shreedhar

関連する問題