参考了网上的做法,自己做了个实验,用触发器来实现了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的外键约束所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)