execSQL
명령을 사용하여 외래 키를 포함하는 테이블에 데이터를 삽입합니다.ContentValues를 사용하여 FOREIGN KEY 필드에 삽입
현재 진행중인 방식입니다.
String query = "INSERT INTO "+ SunshineContract.WeatherEntry.TABLE_NAME +" ("+
SunshineContract.WeatherEntry.COL_LOC_KEY + ", "+
SunshineContract.WeatherEntry.COL_WIND_SPEED+ ", "+
SunshineContract.WeatherEntry.COL_DEGREE+ ") VALUES ((SELECT " +
SunshineContract.LocationEntry._ID + " FROM "+ SunshineContract.LocationEntry.TABLE_NAME + " WHERE "+
SunshineContract.LocationEntry._ID + " = 1), "+
80, 98);";
sqLiteDatabaseWritable.execSQL(query);
데이터베이스에 데이터를 삽입 할 때 콘텐츠 제공 업체를 사용하고 싶습니다. 그러나 현재이 외래 키 필드에 대한 콘텐츠 값을 구성 할 수 없기 때문에 콘텐츠 공급자를 사용하여 데이터를 삽입 할 수 없습니다.
contentValue.put(SunshineContract.WeatherEntry.COL_LOC_KEY, 'SELECT " +
SunshineContract.LocationEntry._ID + " FROM "+ SunshineContract.LocationEntry.TABLE_NAME + " WHERE "+
SunshineContract.LocationEntry._ID + " = 1)'
내가 ContentResolver
을 사용할 수 있도록 ContentValues
를 사용하여 외부 키를 포함하는 테이블에 데이터를 삽입 할 수있는 방법이 있습니까?
대부분의 시나리오에서 데이터는 웹 API (json 또는 xml)에서 가져오고 해당 json을 일부 Java 데이터 객체로 구문 분석해야합니다. 그런 다음 테이블에 삽입 할 때이 Java 데이터 객체의 속성을 ContentValue로 지정하면됩니다. 문제의 배경에 대해 더 설명해 주시겠습니까? –