キー親削除するとき、子供のキーが削除されません。私は次のように見えるのSQLiteを介してデータベースを作っ
と私はこのようなbooks
と呼ばれるテーブルを作成する:
CREATE TABLE books (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "title-book" TEXT, witer TEXT, comment TEXT, "intro-img" TEXT, "avalable-count" integer, "total-count" integer, "publisher-id" INTEGER REFERENCES publisher (id) ON DELETE CASCADE ON UPDATE CASCADE, "category-id" INTEGER REFERENCES categories (id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("publisher-id") REFERENCES publisher (id) ON DELETE CASCADE ON UPDATE CASCADE);
私はその後、私はカテゴリが削除しなかったことなどが子キー列を有する本テーブルを参照してください、彼らは彼らがいたとしてfollowiのように存在して図書category-id
の親キーがあるカテゴリを削除する場合NG写真:
チェック。また、 "PRAGMA foreign_keys"コマンドは、サポートされていれば "no data"ではなく0または1を返さなければなりません。さらに詳しい情報:https://sqlite.org/foreignkeys.html – LordNeo
私はこのコードを試しました:PRAGMA foreign_keys;それは0を返し、私もこのコードを使用します:PRAGMA foreign_keys = ON;確かに有効です –
は、サポートされているがデフォルトでは無効になっているので、有効にしてもう一度テストしてください。また、接続ごとに有効にする必要があります。 '外部キー制約はデフォルトで無効になっています(下位互換性のために)、データベース接続ごとに個別に有効にする必要があります。 ' – LordNeo