如何批量修改数据库外联主键id的值?求解
我的思路是重新设置ccid的值,但报
查询:update course
set ccid
=‘2’ where coursename
=‘英语’
错误代码: 1451
Cannot delete or update a parent row: a foreign key constraint fails (table
.coursetime
, CONSTRAINT fk_mid
FOREIGN KEY (ccid
) REFERENCES course
(ccid
))
错误
// An highlighted block
private static SQLiteDatabase sId= SQLiteDatabase.openDatabase(
"/data/data/com.example.tqkcb/mydb", //数据库所在路径
null, //CunsorFactor
SQLiteDatabase.OPEN_READWRITE| SQLiteDatabase.CREATE_IF_NECESSARY);
public static void createCource(){ //创建或打开数据库中的course表
try{
sql="create table if not exists course"
+"("
+"ccid char(6)primary key,"
+"coursename varchar(20),"
+"cteacher varchar(20),"
+"place varchar(50)"
+");";
sId.execSQL(sql);
}catch (Exception e){ e.printStackTrace();
}
}
public static void createCourceTime(){
try{
sql="create table if not exists coursetime"
+"("
+"ccid char(6),"
+"tid char(6)primary key,"
+"cnum varchar(20),"
+"cweek varchar(20),"
+"cweeks varchar(20),"
+"constraint fk_mid foreign key(ccid) references course(ccid)"
+");";
sId.execSQL(sql);
}catch (Exception e){e.printStackTrace();}
}
/*删除单条数据name[]={coursename,cteacher,place,cnum,cweek,cweeks}
如何更新数据库中的ccid的值*/
protected static void DeleteCourse(String[] names){
try{
String couse_ccid=getCourseCCID(names[0]);
sql="delete from coursetime where ccid='"+couse_ccid+"' ;";
sId.execSQL(sql);
sql="select ccid from coursetime where ccid>'"+couse_ccid+"';";
sql=null;
sql="delete from course where ccid='"+couse_ccid+"' ;";
sId.execSQL(sql);
}catch (Exception e){e.printStackTrace();}
}