android - 外键 ON DELETE CASCADE 在 Android 2.2 中不起作用

标签 android sqlite

我有 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/

相关文章:

android - 无法调试安卓应用程序

sql - 来自两个表的sql sum

android - Android OpenGL ES 上的光线对象拾取

java - 将 gradle 更新到版本 5.1.1 导致 `Unresolved reference:` 问题

android - 找不到 com.android.tools.build :gradle:3. 5

c++ - sqlite3的打开速度有时间估算吗?

ruby-on-rails - 新列未保存在 rails form_for 中

android - 在膨胀 View 上设置 onClick 后,Viewpager 不再可滑动

database - NodeJS 的嵌入式存储替代品

c# - 在 RDLC 中添加多个表