私はsqlite3で作成されたデータベースを持っており、ローンテーブルの外部キーを学生テーブルとブックテーブルに設定して、重複したローンを停止しています。
テーブルの作成を使用する:
CREATE TABLE loan(
SudentID INTEGER,
ISBN INTEGER,
out INTEGER,
FOREIGN KEY(SudentID)
REFERENCES student(SudentID)
ON DELETE CASCADE
FOREIGN KEY(ISBN)
REFERENCES book(ISBN)
ON DELETE CASCADE
)
CREATE TABLE student(
SudentID INTEGER PRIMARY KEY,
First TEXT,
Last,
Contact Text,
Year INTEGER)
CREATE TABLE book(
ISBN INTEGER PRIMARY KEY,
Title TEXT,
Price INTEGER,
Qty INTEGER,
Subject TEXT)
重複レコードをローンテーブルに挿入しようとしても、外部キーはそれを妨げません。
プラグマは、コードとFirefoxデータベース設定の両方でオンになっています。
バージョンは2.6.0です
私の回避策は、Distinctを使用して重複を除外することですが、このデータベースを教育ツールとして使用しているので、それらをアクティブ化する方法はありますか。ただし、cascade delete
動作しません!なんで?