我有一个在 sqlite3 中创建的数据库,并将外键设置为 student 表和 book 表以停止重复贷款:
使用创建表:
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)
如果我尝试将重复记录插入到贷款表中,则外键不会阻止它。
Pragma在代码和 Firefox 数据库设置中都打开了。
版本是 2.6.0
我的解决方法是使用 Distinct 过滤掉重复项,但是当我将此数据库用作教学工具时,有什么方法可以激活它们。但是cascade delete
不起作用!为什么?