#android #sqlite
#Android #sqlite
Вопрос:
У меня есть 2 таблицы:
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;");
, но все еще не работает.
Пожалуйста, помогите
Ответ №1:
Вы указали своей базе данных удалять строки в Error_Exception при удалении строк, на которые ссылаются в Location. Кажется, у вас все в обратном порядке.
Если вы хотите удалить строки в Location при удалении строк в Error_Exception, вам нужно удалить ограничение внешнего ключа в Error_Exception и добавить ограничение внешнего ключа в Location.