Android SQLite:无法插入多条记录
我在将多条记录插入SQLite数据库时遇到问题。我已经查阅了类似的问题,但我找不到bug 以下是我的CustomSQLiteHelper的一部分:Android SQLite:无法插入多条记录,android,sqlite,auto-increment,Android,Sqlite,Auto Increment,我在将多条记录插入SQLite数据库时遇到问题。我已经查阅了类似的问题,但我找不到bug 以下是我的CustomSQLiteHelper的一部分: @Override public void onCreate(SQLiteDatabase db) { final String CREATE_DATABASE_RESOURCE = "CREATE TABLE Resource("+ "_
@Override
public void onCreate(SQLiteDatabase db) {
final String CREATE_DATABASE_RESOURCE =
"CREATE TABLE Resource("+
"_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"timestamp TEXT UNIQUE, " +
"title TEXT, " +
"description TEXT, " +
"latitude TEXT NOT NULL, " +
"longitude TEXT NOT NULL, " +
"altitude TEXT NOT NULL);"; //+
//"PRIMARY KEY (_id, timestamp));";
final String CREATE_DATABASE_IMAGE =
"CREATE TABLE Image("+
"_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"timestamp TEXT UNIQUE, " +
"timestampR TEXT NOT NULL, " +
"path TEXT NOT NULL);";// +
//"PRIMARY KEY (_id, timestamp, timestampR), " +
//"FOREIGN KEY (timestampR) REFERENCES Resource (timestamp));";
db.execSQL(CREATE_DATABASE_RESOURCE);
db.execSQL(CREATE_DATABASE_IMAGE);
}
public void insertResourceMetadata(String timestamp, String title, String desc, String lat, String lng, String alt){
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("timestamp", timestamp);
values.put("title", title);
values.put("description", desc);
values.put("latitude", lat);
values.put("longitude", lng);
values.put("altitude", alt);
database.insert("Resource", null, values);
database.close();
}
public void insertImageMetadata(String timestamp, String timestampR, String path){
SQLiteDatabase database = this.getWritableDatabase();
ContentValues tempValues = new ContentValues();
tempValues.put("timestamp", timestamp);
tempValues.put("timestampR", timestampR);
tempValues.put("path", path);
database.insert("Image", null, tempValues);
database.close();
}
我有一个场景,在这个场景中,insertImageMetadata在for循环中被调用三次,但在数据库中始终只有第一个记录的条目(根本没有) 您确定
timestamp
值在您尝试插入的这三行中是唯一的吗?是的,这是从代码中确定的,我还通过在调用该方法时打印单个时间戳对其进行了测试。