как создать таблицу с внешним ключом в Android sqlite?

#sqlite #android-studio

Вопрос:

я хочу автоматически вставить или поместить booklet_id в свою демографическую таблицу в качестве внешнего ключа. что делает мое приложение, так это то, что я вставляю bookletinfo один раз, затем демографические данные повторяются, например, у меня есть 1 строка данных в информации о буклете с идентификатором 1, затем в демографии у меня есть 5 строк данных, в которых внешние ключи равны 1. затем при следующем вводе в bookletinfo следующая вставка во внешний ключ демографии-2 #создать таблицу

  ` public void onCreate(SQLiteDatabase db) {
String bookletinfo = "CREATE TABLE bookletinfo ( booklet_id INTEGER PRIMARY  KEY AUTOINCREMENT NOT NULL, type VARCHAR NOT NULL, province VARCHAR NOT NULL, citymunicipality NOT NULL, barangay VARCHAR NOT NULL, address VARCHAR NOT NULL, respondent_name VARCHAR NOT NULL, household_head VARCHAR NOT NULL, hh_mem_count INTEGER NOT NULL, created_at DATETIME NOT NULL, updated_at TIMESTAMP)";

String demographiccharacteristics = "CREATE TABLE demographiccharacteristics (id INTEGER PRIMARY  KEY AUTOINCREMENT NOT NULL, Q1 VARCHAR , Q2 VARCHAR , Q3 VARCHAR , Q4 INTEGER , Q5 DATE , Q6 VARCHAR , Q7 VARCHAR , Q8 VARCHAR , Q9 VARCHAR , Q10 VARCHAR , Q11 VARCHAR , Q12 VARCHAR , Q13 VARCHAR , Q14 VARCHAR , currentbrgy VARCHAR , created_at TIMESTAMP  , updated_at TIMESTAMP,booklet_id INTEGER, FOREIGN KEY(booklet_id) REFERENCES bookletinfo(booklet_id))";
}

#insert

  public boolean addBooklet(
String type1,String province,String municipality,String barangay, String address,String nameofrespondent, String householdhead,  String householdtotal, String date,String updated_at) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put("type",type1);
        contentValues.put("province",province);
        contentValues.put("citymunicipality",municipality);
        contentValues.put("barangay",barangay);
        contentValues.put("address",address);
        contentValues.put("respondent_name",nameofrespondent);
        contentValues.put("household_head",householdhead);
        contentValues.put("hh_mem_count", householdtotal);
        contentValues.put("created_at", date);
        contentValues.put("updated_at", updated_at);

        db.insert("bookletinfo",null,contentValues);
        return true;}

    public boolean addDemographic(String etQ1,String etQ2,String etQ3,String etQ4,String etQ5,String etQ6,String etQ7,String etQ8,String etQ9,String etQ10,String etQ11,String etQ12,String etQ13,String etQ14, String etbrgy,String created_at) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put("Q1",etQ1);
        contentValues.put("Q2",etQ2);
        contentValues.put("Q3",etQ3);
        contentValues.put("Q4",etQ4);
        contentValues.put("Q5",etQ5);
        contentValues.put("Q6",etQ6);
        contentValues.put("Q7", etQ7);
        contentValues.put("Q8",etQ8);
        contentValues.put("Q9",etQ9);
        contentValues.put("Q10",etQ10);
        contentValues.put("Q11",etQ11);
        contentValues.put("Q12",etQ12);
        contentValues.put("Q13",etQ13);
        contentValues.put("Q14", etQ14);
        contentValues.put("currentbrgy",etbrgy);
        contentValues.put("created_at",created_at);


        db.insert("demographiccharacteristics",null,contentValues);
        return true;
    }      
 

`