Abb*_*ani 25 sql database sqlite
我对SQLITE3有疑问.
我创建了2个表persons
并orders
使用以下SQL脚本:
sqlite> create table Persons(
P_Id int primary key,
LastName varchar,
FirstName varchar,
Address varchar,
City varchar
);
sqlite> create table Orders(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
);
sqlite> insert into Orders values(1,77895,3);
sqlite> select * from Orders;
1|77895|3
sqlite>
Run Code Online (Sandbox Code Playgroud)
即使人员表是空的,也可以插入orders
表中.
它没有显示任何错误.
这怎么可能.
kij*_*jin 57
在SQLite 3.x中,每次连接到SQLite数据库时都必须进行以下查询:
PRAGMA foreign_keys = ON;
Run Code Online (Sandbox Code Playgroud)
否则SQLite将忽略所有外键约束.
为什么每次?使用SQLite 2.X向后兼容性,根据所述文档.
归档时间: |
|
查看次数: |
14858 次 |
最近记录: |