2013-06-10 3 views
0

Я создаю таблицы в своем приложении для Android. Я хочу, чтобы записи этой таблицы фотографий были удалены, когда запись заказа на доставку удалена.Синтаксическая ошибка Android SQLite во внешнем ключе на каскаде

Этот SQL работает, но не включает в себя ограничение:

Фото Стол:

CREATE TABLE photos ( 
_id INTEGER PRIMARY KEY, 
orderid INTEGER , 
uri TEXT , 
datetime TEXT , 
lattitude REAL , 
longitude REAL , 
FOREIGN KEY (orderid) 
REFERENCES deliveryorder (_id)) 

, но когда я добавить ограничение, я получаю ошибку синтаксиса "возле КАСКАД"

Фото стол:

CREATE TABLE photos ( 
_id INTEGER PRIMARY KEY, 
orderid INTEGER , 
uri TEXT , 
datetime TEXT , 
lattitude REAL , 
longitude REAL , 
FOREIGN KEY (orderid) REFERENCES deliveryorder (_id) ON DELETE CASCASDE ) 

Вот сообщение об ошибке:

06-10 11:09:55.944: E/AndroidRuntime(26269): java.lang.RuntimeException: 
Unable to start activity 
ComponentInfo{com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity}: 
android.database.sqlite.SQLiteException: near "CASCASDE": 
syntax error (code 1): , while compiling: 
CREATE TABLE photos (_id INTEGER PRIMARY KEY, orderid INTEGER , uri TEXT , datetime TEXT , lattitude REAL , longitude REAL , FOREIGN KEY (orderid) REFERENCES deliveryorder (_id) ON DELETE CASCASDE ) 

Я искал ответы, которые, как представляется, связаны друг с другом, но я не могу найти тот, который решает эту проблему. Я знаю, что это, наверное, что-то простое, но у меня нет большого опыта работы с SQL.

  • Я включаю внешние ключи с прагмой. Я использую прагму и в onCreate и в onOpen.

  • Версия базы данных такова, что поставляется с пряниками, поэтому все это должно поддерживаться.

Очевидно, что я делаю что-то глупое, но не могу понять это.

Заранее благодарю вас за помощь.

+0

Я считаю, что sqlite3 (базовый движок) поддерживает синтаксис, но не имеет реализации для ссылочной целостности, и что для его работы вы также должны добавить триггеры в свою базу данных и выполнить каскадирование внутри них. – mah

+0

В соответствии с документацией, которую я нашел, поддерживаются внешние ключи. Я могу использовать триггеры, но, если это возможно, предпочтет более аккуратное решение. Документы находятся здесь: http://www.sqlite.org/foreignkeys.html – Rben

ответ

1

вы ошибочно CASCASDE. попробуйте CASCADE. он должен работать лучше.

+0

oh geez, это было неловко. Благодаря! – Rben

+0

эй, я сделал хуже ... хуже. удачи! –

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