SQLiteのバージョン3.6.x以降、外部キー制約がサポートされているようです。 IOS5.0のSQLiteのバージョンは3.7.7です(sqlite3.hにあります)。SQLite - 外部キーの制約-Is 5
ただし、制約があるテーブルに行を挿入しようとすると、関連する外部キーが存在しない場合でも、行が正しく挿入されます。私は誤りがない。
は、Navicatのようなアプリケーションを使用して、同じinsert文は私に、「制約違反エラー」を与える
を行う外部キーがIOを5でサポートされている場合、あなたは知っていますか?ここで
は、データベーススキーマです:
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)
本当に簡単な、そうではありませんか?
おかげ エマニュエル
あなたが挿入している場所にコードを投稿できますか?テーブル? – Eric
こんにちは、私はFMDatabaseを使用しています、コードは本当にシンプルです:[db executeUpdate:@ "トラック(trackname、trackartist)の値(?、?)に挿入"、 @ "新しいトラック"、 [NSNumber numberWithInt:i ]] – ecaste
奇妙な...私はあなたとまったく同じシナリオを持っています...(Navicat、iOS、FMDB)。同じ問題。愛していなければならない。 – walkingbrad