首页 / SQLITE / SQLite3:外键约束
SQLite3:外键约束
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQLite3:外键约束,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1751字,纯文字阅读大概需要3分钟。
内容图文
1.使用外键约束前必须确定sqlite3是恰当的编译版本,原文:In order to use foreign key constraints in SQLite, the library must be compiled with neither SQLITE_OMIT_FOREIGN_KEY or SQLITE_OMIT_TRIGGER defined.
2.外键开关
必须使用pragma打开外键开关以支持外键约束。
sqlite> PRAGMA foreign_keys; 0 sqlite> PRAGMA foreign_keys = ON; sqlite> PRAGMA foreign_keys; 1 sqlite> PRAGMA foreign_keys = OFF; sqlite> PRAGMA foreign_keys; 0
3.外键语句如图(来自sqlite3文档):
4.术语
sqlite中使用父表、子表、父键、子键来描述外键约束。
5.约束性质
子表的记录的外键必须为空或存在父表中,若在父表中则必须为父表的主键或具有unique选项的字段。
也就是一下必须恒为真:
child_table_foreign_key IS NULL OR EXISTS(SELECT primary_key_or_unique_col FROM parent_table WHERE parimary_key_or_unique_col=chidl_table_foreign_key)
当父键所对应的子表记录还存在时,默认情况下不允许删除父键所对应记录。可以使用on delete 或on update选项指定操作。
当必须删除父键对应的子表中的记录时(级联删除),可以使用触发器。
6.创建具有外键约束的表
CREATE TABLE artist( artistid INTEGER PRIMARY KEY, artistname TEXT ); CREATE TABLE track( trackid INTEGER, trackname TEXT, trackartist INTEGER, FOREIGN KEY(trackartist) REFERENCES artist(artistid) );
或
CREATE TABLE track( trackid INTEGER, trackname TEXT, trackartist INTEGER REFERENCES artist(artistid) );
注:使用第二种写法时,貌似MySQL5.0的外键约束会不起作用。因此推荐第一种写法,并最好在前面加上约束名CONSTRAINT symbol;
7.ON DELETE and ON UPDATE Actions
未完,参加
http://www.sqlite.org/foreignkeys.html#fk_actions
SQLite3:外键约束
标签:htm 指定 就是 rom 字段 href play fine 外键约束
本文系统来源:https://www.cnblogs.com/aqzz/p/2400068.html
内容总结
以上是互联网集市为您收集整理的SQLite3:外键约束全部内容,希望文章能够帮你解决SQLite3:外键约束所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。