Bez*_*zrA 9 database sqlite android auto-increment
好吧,这不是垃圾邮件,它应该是简单的我不知道为什么它不工作这是我的代码:
gamesdatabase = openOrCreateDatabase("GamesDatabase", MODE_PRIVATE, null);
gamesdatabase.execSQL("CREATE TABLE IF NOT EXISTS Games (ID INTEGER PRIMARY KEY, Name
VARACHAR, NPlayers INT(1), NRounds INT(2), WinScore INT(2));");
gamesdatabase.execSQL("INSERT INTO Games
(ID, Name, NPlayers, NRounds, WinScore ) VALUES ( NULL, 'TAWLA',2,0,0 );");
gamesdatabase.execSQL("INSERT INTO Games
(ID, Name, NPlayers, NRounds, WinScore ) VALUES ( NULL, 'DOMANA',4,0,0 );");
Cursor c = gamesdatabase.rawQuery("SELECT * FROM Games", null);
c.moveToFirst();
while (c.isAfterLast() == false) {
Log.d("BEZRA", String.valueOf(c.getInt(c.getColumnIndex("ID"))));
c.moveToNext();
}
Run Code Online (Sandbox Code Playgroud)
这有什么问题?所有记录的日志显示为0
Phi*_*ard 28
SQLite表的主键称为_id.它是自动递增的,您不应该尝试在其中插入值.
gamesdatabase = openOrCreateDatabase("GamesDatabase", MODE_PRIVATE, null);
gamesdatabase.execSQL("CREATE TABLE IF NOT EXISTS Games (_id INTEGER PRIMARY KEY, Name
VARACHAR, NPlayers INT(1), NRounds INT(2), WinScore INT(2));");
gamesdatabase.execSQL("INSERT INTO Games
(Name, NPlayers, NRounds, WinScore ) VALUES ('TAWLA',2,0,0 );");
gamesdatabase.execSQL("INSERT INTO Games
(Name, NPlayers, NRounds, WinScore ) VALUES ('DOMANA',4,0,0 );");
Cursor c = gamesdatabase.rawQuery("SELECT * FROM Games", null);
c.moveToFirst();
while (c.isAfterLast() == false) {
Log.d("BEZRA", String.valueOf(c.getInt(c.getColumnIndex("_id"))));
c.moveToNext();
}
Run Code Online (Sandbox Code Playgroud)
对我有用的是将我的创建类型从INT重命名为INTEGER并开始工作.
由此:
CREATE TABLE IF NOT EXISTS foo (id INT PRIMARY KEY, bar INT)
Run Code Online (Sandbox Code Playgroud)
对此:
CREATE TABLE IF NOT EXISTS foo (id INTEGER PRIMARY KEY, bar INT)
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以看到 http://alvinalexander.com/android/sqlite-autoincrement-serial-identity-primary-key 示例 CRETAE_TABLE
CREATE TABLE salespeople (
id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
commission_rate REAL NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
插入数据
INSERT INTO salespeople VALUES (null, 'Fred', 'Flinstone', 10.0);
Run Code Online (Sandbox Code Playgroud)
- -或者 - -
INSERT INTO salespeople (first_name, last_name, commission_rate) VALUES ('Fred', 'Flinstone', 10.0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28791 次 |
| 最近记录: |