回答
SQLite3中的触发器强制外键约束。链接https://www.sqlite.org/cvstrac/wiki?p=ForeignKeyTriggers会帮助你解决你的第一个问题。
我找不到使用“数据库结构”选项卡定义外键约束的方法。我强烈建议使用脚本定义表格定义和约束,而不是使用图形编辑器来构建表格定义和约束 - 这使得创建新数据库和追踪模式更改变得更加容易。通过一个例子,假设我们有两个表:一个定义文件名,一个定义用于压缩的方法,我们可以在定义它时向file_definition表添加外键约束。
CREATE TABLE [compression_state] (
[compression_state_id] INTEGER PRIMARY KEY NOT NULL,
[value] TEXT NOT NULL
);
CREATE TABLE [file_definition] (
[file_id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[compression_state_id] INTEGER NOT NULL,
[name] TEXT NOT NULL,
FOREIGN KEY(compression_state_id) REFERENCES compression_state(compression_state_id)
);
然而,在默认情况下,SQLite的也不会强制约束,所以每次连接到数据库时,您必须发出以下命令启用约束检查。
PRAGMA foreign_keys = ON;
在documentation的更多详细信息。
如果已经存在的表,你不希望建立一个完整的脚本,那么你的运气了,一旦产生表SQLite不支持添加外键,在这里看到:SQL Features That SQLite Does Not Implement
晚答案也许有帮助别人
从SQLite的文档: CREATE TABLE artist( artistid INTEGER PRIMARY KEY, artistname TEXT ); CREATE TABLE track( trackid INTEGER, trackname TEXT, trackartist INTEGER -- Must map to an artist.artistid! );
并在年底CREATE TABLE track( trackid INTEGER, trackname TEXT, trackartist INTEGER, FOREIGN KEY(trackartist) REFERENCES artist(artistid) );
在DB浏览器SQLite的环境(v 3.8.0 - sqlite的v 3.9.2)当您添加D B字段为跟踪表以及 的PK,AI等列可以找到一个外键列。
在那里,对于本示例,您只需在trackartist行中添加艺术家(artistid)。
然后创建外键约束。
在DB浏览器,在编辑表定义窗口中,您可以双击外键的空白区域和一个文本框将被激活。你可以在那里添加你的外键。
- 1. 在sqlite数据库中创建一个外键
- 2. 在数据库浏览器中查看QML SQLite数据库
- 3. 如何在附加的sqlite数据库中创建外键?
- 4. 在Android中使用外键创建SQLite数据库?
- 5. 有没有办法在SQLite数据库浏览器中创建.db文件
- 6. 外键不会在SQLite数据库使用SQLite.net创建
- 7. 在SQLite数据库中获取外键
- 8. 从SQLite浏览器创建的数据库不工作在设备“Android”
- 9. 在查询浏览器中创建数据库备份
- 10. 如何查看SQLite数据库浏览器中的数据?
- 11. 在Android库中创建SQLite数据库
- 12. iPhone:创建支持外键的sqlite数据库
- 13. 如何在Sqlite数据库浏览器中上传图片?
- 14. 如何使用sqlite管理器在sqlite中创建外键
- 15. SQLite检查约束和SQLite数据库浏览器
- 16. SQLite数据库浏览器只显示第一行
- 17. 如何在sqlite android中创建外键?
- 18. 在Android平板电脑上查看SQLite数据 - SQLite数据库浏览器
- 19. SQLite数据库浏览器中的小数点
- 20. 从Android Studio浏览SQLite数据库
- 21. 用外键创建数据库
- 22. 用cordova在sqlite中创建数据库
- 23. 表未在SQLite数据库中创建
- 24. 在android中创建SQLite数据库
- 25. 在JDBC中创建数据库Sqlite
- 26. 在Qt中创建SQLite数据库(C++)
- 27. 如何在Sqlite中创建数据库?
- 28. 在数据库sqlite中创建新表
- 29. 在iOS中创建Sqlite数据库
- 30. 如何在android中更改sqlite数据库浏览器中的列数据?