Sto creando una tabella con riferimenti a chiave esterna. Mi sto chiedendo la sintassi richiesta. Per lo più ho visto il seguente (da http://www.sqlite.org/foreignkeys.html#fk_basics):Sintassi SQLite per la creazione di una tabella con chiave esterna
CREATE TABLE artist(
artistid INTEGER PRIMARY KEY,
artistname TEXT
);
CREATE TABLE track(
trackid INTEGER,
trackname TEXT,
trackartist INTEGER,
FOREIGN KEY(trackartist) REFERENCES artist(artistid)
);
Tuttavia, dallo stesso sito (http://www.sqlite.org/foreignkeys.html#fk_actions) vedo questo:
CREATE TABLE artist(
artistid INTEGER PRIMARY KEY,
artistname TEXT
);
CREATE TABLE track(
trackid INTEGER,
trackname TEXT,
trackartist INTEGER REFERENCES artist(artistid) ON UPDATE CASCADE
);
Quest'ultimo sintassi è un po 'più conciso, ma io voglio sapere se il risultato è in qualche modo diverso (a parte lo ON UPDATE CASCADE
, che naturalmente ha un effetto, l'ho incluso solo perché ho copiato il codice esattamente dal sito di riferimento, e perché non so che la sintassi sopra non lo fa si applicano solo quando si effettua tale specifica). Sto lavorando in Android, nel caso ciò che conta.
Hi War_Hero, sto ricevendo la chiave esterna come null. Puoi guardarlo per favore.Queste sono le mie 2 tabelle Tabella 1 - stringa finale DATABASE_CREATE_TABLE = "Crea tabella se non esiste scannerValuess (id intero, partName testo null, costo testo null, foreign key (id) reference scannerUserValuess (userid)) "; Tabella 2 - Stringa finale DATABASE_CREATE_TABLE_USER = "Crea tabella se non esiste scannerUserValuess (ID utente intero interstizazione chiave primaria, nome testo non null, testo mobile non nullo, testo indirizzo non nullo, testo data non null)"; Per favore aiutami al più presto. Grazie in anticipo. – Naveen