加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite3不支持外键限制吗?

发布时间:2020-12-12 19:15:55 所属栏目:百科 来源:网络整理
导读:我有一个SQLITE3的问题。 我已经使用以下SQL脚本创建了2个表和订单: 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
我有一个SQLITE3的问题。

我已经使用以下SQL脚本创建了2个表和订单:

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>

即使person表是空行,也可以插入到订单表中。

它不显示任何错误。

这怎么可能。

在SQLite 3.x中,每次连接到SQLite数据库时,都必须进行以下查询:
PRAGMA foreign_keys = ON;

否则SQLite将忽略所有外键约束。

为什么每一次?与SQLite 2.x向后兼容,根据documentation。

在SQLite 4.x中,FK约束将为enabled by default。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读