私は 1 つの開いているヘルパー クラスで 5 つのテーブルを作成する Android アプリを作成しています。スキーマで ON DELETE CASCADE を使用しているときに問題に直面しています。ON DELETE CASCADE の概念を知っています。ここで、2 つのテーブルのうちの 1 つをコピーします。
private static final String MEDICINE_TABLE = "create table medicine_details (_mid integer primary key autoincrement, "
+ " medicine_name text, type text, take_with text, m_did integer not null,"
+ "FOREIGN KEY(m_did) REFERENCES doctor_details(did)"
+ " ON DELETE CASCADE" + ");";
private static final String SCH_TAB = "CREATE TABLE schedule_details(sid INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "medi_stdate TEXT,medi_end_date TEXT,time_sch TEXT,rept TEXT, alarm_id NUMBER, "
+ "u_id integer not null, doc_id integer not null, mid integer not null, "
+ "FOREIGN KEY(u_id) REFERENCES member_details(_id)"
+ " ON DELETE CASCADE,"
+ "FOREIGN KEY(doc_id) REFERENCES doctor_details(did)"
+ " ON DELETE CASCADE,"
+ "FOREIGN KEY(mid) REFERENCES medicine_details(_mid)"
+ " ON DELETE CASCADE" + ");";
薬から削除しようとすると、スケジュール表ではなく薬表からしか削除されません。ここでは、薬テーブルがマスター テーブルで、スケジュール テーブルが子テーブルです。