我有两张桌子:
db.execSQL("Create Table Location(LocationID INTEGER PRIMARY KEY AUTOINCREMENT,
Latitude TEXT, Longitude TEXT," +
" CellID TEXT, MCC TEXT, MNC TEXT, LAC TEXT, SendTime TEXT DEFAULT
(datetime('now','localtime')), SignalStrength INTEGER, LocationType TEXT)");
db.execSQL("Create Table Error_Exception(LocationID INTEGER, ExceptionID INTEGER
PRIMARY KEY AUTOINCREMENT, ModuleID TEXT, ClassName TEXT, ControlName TEXT, " +
"MethodName TEXT, ErrorDescription TEXT, ErrorDate TEXT DEFAULT
(datetime('now','localtime')),
FOREIGN KEY(LocationID) REFERENCES Location(LocationID)
ON DELETE CASCADE);");
当我尝试删除Error_Exception
中的行时,它不会删除Location
表中的行。
我已尝试使用db.execSQL("PRAGMA foreign_keys=ON;");
,但仍无效。
请帮忙
答案 0 :(得分:5)
当已删除位置中引用的行时,您已告知数据库删除Error_Exception中的行。你好像落后了。
如果要在删除Error_Exception中的行时删除Location中的行,则需要在Error_Exception中删除外键约束,并在Location中添加外键约束。