最近在做数码相框上的嵌入式开发,开发过程中使用的SQLite数据库,但是编码的过程中,遇到个问题,SQLite不支持外键约束,外键约束会被解析但不会被执行。
参考了网上的做法,自己做了个实验,用触发器来实现了SQLite的外键约束。
建表语句:
CREATE TABLE jokeItem
(
id integer primary key,
content TEXT,
classId integer
);
CREATE TABLE jokeClass
(
classId integer primary key,
className TEXT
);
创建插入触发器:
CREATE TRIGGER FK_INSERT
BEFORE INSERT ON jokeItem
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK,'No this classId in jokeClass')
WHERE (SELECT classId FROM jokeClass WHERE classId = NEW.classId) IS NULL;
END;
插入操作的外键支持效果:
创建更新触发器:
CREATE TRIGGER FK_UPDATE
BEFORE UPDATE ON jokeItem
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK,'No this classId in jokeClass')
WHERE (SELECT classId FROM jokeClass WHERE classId = NEW.classId) IS NULL;
END;
更新操作的外键支持效果:
创建删除触发器:
CREATE TRIGGER FK_DELETE
BEFORE DELETE ON jokeClass
FOR EACH ROW BEGIN
DELETE FROM jokeItem WHERE classId = OLD.classId;
END;
删除操作的外键支持效果:
- 大小: 25.5 KB
- 大小: 28.4 KB
- 大小: 10.8 KB
分享到:
相关推荐
sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器sqlite 触发器...
用sqlite实现学生成绩数据库的增删改查用sqlite实现学生成绩数据库的增删改查用sqlite实现学生成绩数据库的增删改查用sqlite实现学生成绩数据库的增删改查用sqlite实现学生成绩数据库的增删改查用sqlite实现学生成绩...
System.Data.SQLite.dll默认开启外键约束重新编译版,文件版本1.0.85.0,官网源码,除了开启外键约束,未作任何修改,内含.net2.0、.net4.0的32bit和64bit的release,以及源码修改说明。
用WxPython实现Sqlite3 里的数据管理通用界面,简单实现 查询,修改、新增、删除记录。 介绍可以看博客 https://blog.csdn.net/seakingx/article/details/93050958
sqlite orm android java
利用 PowerDesigner 建库,在DotNet4.5 以上及DotNet4.5 以下框架下实现Sqlite To Linq...DotNet4.5及以下框架:由于linq2sqlite 要求必须是DotNet4.5,不能用linq2sqlite,介绍利用 Linq To Sql ,实现Linq To Sqlite;
基于python实现的sqlite队列,方便的处理sqlite并发。SqliteQueue是继承了threading.Thread的线程,并且维护了一个向sqlite请求的队列。支持peewee请求。SqlQuery简单的封装了SQL语句
安卓开放,实现SQLite............ .
这个代码创建了两个数据库,分别使用一个一个插入的方法和批量插入的方法,并且打印出时间,查看不同方法不同插入条数所使用的时间。
delphi使用unidac连接sqlite实现增删改的例子
Springboot + SQLite 实现SQLite数据文件随意切换,切换SQLite数据源 1、新建生成DataSource得Bean,详情看源码得DataSourceAutoConfiguration类 2、切换SQLite数据源或文件DemoController类
android之利用SQLite数据库实现登陆和注册,使用SQLiteOpenHelper抽象类建立数据库,建立数据库类DatabaseHelper,写业务类实现查询和插入
这是 SQLite3 V3.26.0 的重新编译版本,加入了默认外键约束,使用时无需手动打开即可支持外键约束。
动物位移小游戏Java实现,强行使用上了SQLite和MyBatis.zip动物位移小游戏Java实现,强行使用上了SQLite和MyBatis.zip动物位移小游戏Java实现,强行使用上了SQLite和MyBatis.zip动物位移小游戏Java实现,强行使用上...
SQLite触发器的SQL语法.pdf
Node.js结合sqlite3模块实现Sqlite数据库建表并实现大数据量的快速插入
这是Android开发的一个例子,作为学习SQLite的一个样板。使用Android SQLite数据库实现联系人的增删改查功能,同时使用了ListView、Adapter来实现数据的列表显示,使用SearchView与Filter数据过滤器来实现搜索功能。
java实现sqlite数据库的创建和增删查改的一个项目,项目为未完成的一个电话本记录系统,在电话本的分组中,已经都实现了数据库操作的增删查改(如果需要看实现增删查改的代码,需要查看电话本的分组功能)并且用util...