Sqlite 外键实现可能不正确…在judgedetail中插入值,然后保存另一个courttype,该courttype不在court表中。。。

Sqlite 外键实现可能不正确…在judgedetail中插入值,然后保存另一个courttype,该courttype不在court表中。。。,sqlite,Sqlite,私有静态最终字符串表\u CONTACTS=“judge” //联系人表名称 私有静态最终字符串表\u CONTACTS\u COURT=“courtdail” //法庭表列名称 私有静态最终字符串密钥\u ID1=“id”; 私有静态最终字符串键\u NAME1=“name”; 私有静态最终字符串密钥\u EMAIL1=“email” //判断表列名称 私有静态最终字符串密钥\u ID=“ID”; 私有静态最终字符串键\u NAME=“NAME”; 专用静态最终字符串密钥\u PH\u NO=

私有静态最终字符串表\u CONTACTS=“judge”

//联系人表名称 私有静态最终字符串表\u CONTACTS\u COURT=“courtdail”

//法庭表列名称 私有静态最终字符串密钥\u ID1=“id”; 私有静态最终字符串键\u NAME1=“name”; 私有静态最终字符串密钥\u EMAIL1=“email”

//判断表列名称
私有静态最终字符串密钥\u ID=“ID”;
私有静态最终字符串键\u NAME=“NAME”;
专用静态最终字符串密钥\u PH\u NO=“电话号码”;
私有静态最终字符串密钥\u EMAIL=“EMAIL”;
私有静态最终字符串密钥\u ADDRESS=“ADDRESS”;
私有静态最终字符串键\u COURTTYPE\u ID=“courttypeid”;
私人最终ArrayList Judger_list=新ArrayList();
private final ArrayList contact_list=新建ArrayList();
公共判断选项卡处理程序(上下文){
super(上下文、数据库名称、null、数据库版本);
}
//正在创建表(---KEY\u COURTTYPE\u ID是外键--)
@凌驾
public void onCreate(SQLiteDatabase db){
字符串CREATE\u CONTACTS\u TABLE=“CREATE TABLE”
+表2\u联系人
+ "("
+键ID+“整数主键”+“键名称+”文本
+按键号+文本
+键地址+文本
+按键类型ID+“文本,”
+密钥_电子邮件+“文本,”
+“外键(“+KEY\u COURTTYPE\u ID+”)引用“+TABLE\u CONTACTS\u COURT+”(“+KEY\u ID1+”)”;
字符串CREATE_CONTACTS_TABLE1=“CREATE TABLE”+TABLE_CONTACTS_COURT+”(“
+KEY_ID1+“整数主键,”+KEY_NAME1+“文本,”
+键1+“文本”+”;
execSQL(创建联系人表);
db.execSQL(创建联系人表1);
}

您忘了调用。

如何调用以及该方法放在哪里..您能简要解释一下吗..提前感谢您对我链接的文档有什么您不了解的吗?在创建方法bt后我确实使用了该方法(我遇到错误):android.database.sqlite.SQLiteConstraintException:外键约束失败@Override public void onOpen(SQLiteDatabase db){super.onOpen(db);if(!db.isReadOnly()){//启用外键约束db.execSQL(“PRAGMA foreign_keys=ON;”;}}现在你得到了你想要得到的错误,根据您的原始问题。thanx dis问题已解决…我还有另一个问题…实际上我有两个问题一个是注册,第二个是登录我想设置注册过程完成后用户第一次可以看到的注册屏幕,然后只有登录屏幕可见…在一个主要活动中,两个布局都要设置假设没有用户最初只有第一个屏幕可见,如果用户只注册了第二个屏幕可见……只有一个用户注册了……怎么办??请给我提个建议
// judge Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_PH_NO = "phone_number";
private static final String KEY_EMAIL = "email";
private static final String KEY_ADDRESS = "address";
private static final String KEY_COURTTYPE_ID = "courttypeid";
private final ArrayList<JudgeContact> judge_list = new ArrayList<JudgeContact>();
private final ArrayList<Court> contact_list = new ArrayList<Court>();

public JudgeDatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating Tables (----KEY_COURTTYPE_ID is foreign key----) 
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " 
    + TABLE_CONTACTS 
    + "("
    + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
    + KEY_PH_NO + " TEXT," 
    + KEY_ADDRESS + " TEXT,"
    + KEY_COURTTYPE_ID + " TEXT,"
    + KEY_EMAIL + " TEXT,"
    + " FOREIGN KEY ("+KEY_COURTTYPE_ID+") REFERENCES "+TABLE_CONTACTS_COURT+" ("+KEY_ID1+")";


String CREATE_CONTACTS_TABLE1 = "CREATE TABLE " + TABLE_CONTACTS_COURT + "("
        + KEY_ID1 + " INTEGER PRIMARY KEY," + KEY_NAME1 + " TEXT,"
        + KEY_EMAIL1 + " TEXT" + ")";

db.execSQL(CREATE_CONTACTS_TABLE);
db.execSQL(CREATE_CONTACTS_TABLE1);

}