2013-06-12 5 views
0

У меня возникли проблемы с удалением строки из моего SQLite таблицы, которая содержит внешний ключ,Невозможно удалить строку, содержащую внешний ключ

   public void deleteUpload(int id) 
      { 
       database.delete(MySqlHelper.TABLE_UPLOAD, MySqlHelper.COLUMN_ID_ARTICLE 
         + " = " + id, null); 
      } 

Я получаю эту ошибку:

android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed at android.database.sqlite.SQLiteStatement.native_execute(Native Method) at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:55) at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1598) at fr.sunIt.database.DataSource.deleteUpload(DataSource.java:183)

+0

Предполагая, что 'COLUMN_ID_ARTICLE' является первичным ключом таблицы, какие таблицы имеют отношение к' COLU MN_ID_ARTICLE' как внешний ключ? Должен быть кто-то, иначе вы не получите эту ошибку. Может быть, даже сам присоединиться к этой статье может быть родителем ребенка? Запустите это, чтобы убедиться, что система считает, что есть некоторые ... 'SELECT sql FROM sqlite_master WHERE sql LIKE '% REFERENCES%' и sql like '% TABLE_UPLOAD%'' – xQbert

ответ

0

вам необходимо удалить все записи этого внешнего ключа на всех ta bles, на которые ссылаются

+0

Я не пытаюсь удалить первичный ключ. –

Смежные вопросы