我有 2 张 table :
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("PRAGMAforeign_keys=ON;");
但仍然不起作用。
请帮忙
最佳答案
您已告诉数据库在删除 Location 中引用的行时删除 Error_Exception 中的行。你似乎把事情搞倒了。
如果您想在删除Error_Exception中的行时删除Location中的行,则需要删除Error_Exception中的外键约束,并在Location中添加外键约束。
关于android - 外键 ON DELETE CASCADE 在 Android 2.2 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5787338/