sembra che i vincoli di chiavi esterne siano supportati dalla versione 3.6.x in SQLite. La versione di SQLite su IOS 5.0 è 3.7.7 (trovata in sqlite3.h).SQLite - Contraints chiavi esterne - IO 5
Ma quando provo a inserire una riga in una tabella con un vincolo, la mia riga viene inserita correttamente anche se la chiave esterna correlata non esiste. Non ho errori
Fare la stessa istruzione di inserimento usando applicazioni come Navicat mi dà un "errore di violazione di vincolo"
fai a sapere se le chiavi esterne sono supportate su iOS 5?
Ecco lo schema del database:
CREATE TABLE artist(
artistid INTEGER PRIMARY KEY,
artistname TEXT
)
CREATE TABLE "track" (
"trackid" INTEGER PRIMARY KEY AUTOINCREMENT,
"trackname" TEXT,
"trackartist" INTEGER,
CONSTRAINT "trackartist" FOREIGN KEY ("trackartist") REFERENCES "artist" ("artistid") ON DELETE CASCADE ON UPDATE CASCADE)
molto semplice, non è vero?
Grazie Emmanuel
Puoi pubblicare il codice in cui stai inserendo nel tavolo? – Eric
Ciao, sto usando FMDatabase, il codice è molto semplice: [db execUpUpdate: @ "inserisci in traccia (trackname, trackartist) valori (?,?)", @ "new track", [NSNumero numeroWithInt: i ]] – ecaste
Strano ... Ho lo stesso identico scenario che hai ... (Navicat, iOS, FMDB). Stesso problema. Devo amare COSÌ. – walkingbrad