He estado tratando de obtener claves externas trabajando en mi base de datos SQLite de Android. He intentado el siguiente sintaxis pero me da una fuerza de cierre:SQlite - Android - Sintaxis de clave externa
private static final String TASK_TABLE_CREATE = "create table "
+ TASK_TABLE + " (" + TASK_ID
+ " integer primary key autoincrement, " + TASK_TITLE
+ " text not null, " + TASK_NOTES + " text not null, "
+ TASK_DATE_TIME + " text not null, FOREIGN KEY ("+TASK_CAT+") REFERENCES "+CAT_TABLE+" ("+CAT_ID+"));";
Alguna idea de lo que podría estar haciendo mal? si necesita ver la otra estructura de tabla, entonces puedo, es solo una estructura muy simple para el segundo con una ID y un nombre.
Editar:
Aquí está el error:
03-13 13:42:35.389: ERROR/AndroidRuntime(312): Caused by: android.database.sqlite.SQLiteException: unknown column "taskCat" in foreign key definition: create table reminders (_id integer primary key autoincrement, task_title text not null, notes text not null, reminder_date_time text not null, FOREIGN KEY (taskCat) REFERENCES category (_id));
Esta solución no funcionó para mí. La solución que encontré fue definirlo todo en una línea, pero con una sintaxis ligeramente diferente. Hice esto en lugar de las 2 últimas líneas: TASK_CAT + "INTEGER REFERENCES" + CAT_TABLE + ");"; – HotN
@HotN, tienes razón amigo. Tu solución funcionó para mí también. Gracias – blueware
@jetho Quiero agregar functionallity que una vez que la clave principal eliminó todos los registros de la columna del niño también deben eliminarse. – UnKnown