用触发器实现SQLite的外键约束

用触发器实现SQLite的外键约束,第1张

概述    最近在做数码相框上的嵌入式开发,开发过程中使用的SQLite数据库,但是编码的过程中,遇到个问题,SQLite不支持外键约束,外键约束会被解析但不会被执行。     参考了网上的做法,自己做了个实验,用触发器来实现了SQLite的外键约束。     建表语句: CREATE TABLE jokeItem (     id integer primary key,     content T 最近在做数码相框上的嵌入式开发,开发过程中使用的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;

删除 *** 作的外键支持效果:
总结

以上是内存溢出为你收集整理的用触发器实现SQLite的外键约束全部内容,希望文章能够帮你解决用触发器实现SQLite的外键约束所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1174112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存