2015-04-29 2 views
-2

Я создаю довольно простой sqlite db для моего проекта Android. Прошло много времени с тех пор, как я написал команды msql, не говоря уже о sqlite.Внешние ключи таблицы Sqlite для Android?

Чтобы этот вопрос прост, просто скажем, что у меня есть две таблицы. Одна таблица для dogs и другая для owners.

В dogs будет столбец для хранения _id владельца, который будет первичным ключом из другой таблицы.

Я не могу на всю жизнь помнить, как это сделать в sqlite или если я даже могу.

Я создаю таблицу собаки с этой строки:

private static final String CREATE_TABLE_DOGS = "CREATE TABLE" 
      + TABLE_DOGS + "(" + COLUMN_ID 
      + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
      + COLUMN_NAME + " TEXT NOT NULL, " 
      + COLUMN_OWNER + " INTEGER);"; 
+0

Итак, вам нужен INNER JOIN? http://www.tutorialspoint.com/sqlite/sqlite_using_joins.htm –

ответ

3

SQLite не имеет внешних ключей по умолчанию включен. Вам нужно будет выполнить pragma FOREIGN_KEYS=ON; каждый раз перед использованием базы данных.

Чтобы создать отношение внешних ключей, добавьте столбец в таблицу ваших собак следующим образом: FOREIGN KEY(owners_id) REFERENCES owners(_id). Вы также должны определить правила нарушения ограничений.

Для получения дополнительной информации о SQLite внешних ключей, проверить https://www.sqlite.org/foreignkeys.html

+0

Привет Jschools, я получаю внешний ключ как null. Можете ли вы посмотреть на него. Это мои 2 таблицы. Таблица 1 - окончательная строка DATABASE_CREATE_TABLE = "create table if не существует scannerValuess (id integer, partName текст null, стоимость текста null, внешний ключ (id) ссылки scannerUserValuess (userid)) "; Таблица 2 - окончательная строка DATABASE_CREATE_TABLE_USER = "создать таблицу, если она не существует. ScannerUserValuess (автоинкремент первичного ключевого слова userid, текст текста не равен null, текст мобильного текста не равен null, текст адреса не равен null, текст даты не равен null)"; Пожалуйста, помогите мне как можно скорее. Спасибо в Advance. – Naveen

+0

Не уверен, что вы подразумеваете под «получением внешнего ключа как nulls», но я бы предположил, что, поскольку ваша таблица 'scannerValuess' ссылается на вашу таблицу' scannerUserValuess', вам нужно сначала создать 'scannerUserValuess'. – Jschools

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