用sqlite的触发器实现删除时,要关闭外键,要不然会有出现删不了外键对应键的情况。
http://hanover.iteye.com/blog/585749
最近在做数码相框上的嵌入式开发,开发过程中使用的sqlite数据库,但是编码的过程中,遇到个问题,sqlite不支持外键约束,外键约束会被解析但不会被执行。
参考了网上的做法,自己做了个实验,用触发器来实现了sqlite的外键约束。
建表语句:
CREATE table jokeItem
(
ID integer primary key,
content TEXT,sans-serif; Font-size:14px; line-height:25px; text-align:left"> classID integer
);
CREATE table jokeClass
classID integer primary key,sans-serif; Font-size:14px; line-height:25px; text-align:left"> 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
更新 *** 作的外键支持效果:
创建删除触发器:
CREATE TRIGGER FK_DELETE
BEFORE DELETE ON jokeClass
DELETE FROM jokeItem WHERE classID = olD.classID;
删除 *** 作的外键支持效果:
以上是内存溢出为你收集整理的用触发器实现SQLite的外键约束全部内容,希望文章能够帮你解决用触发器实现SQLite的外键约束所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)