首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在SQLite数据库浏览器中创建外键

在SQLite数据库浏览器中创建外键
EN

Stack Overflow用户
提问于 2013-05-14 15:13:05
回答 8查看 58.6K关注 0票数 54

对于新手的问题,很抱歉。

我使用SQLite数据库浏览器创建了我的表,但是:

我不知道如何使用application?

  • How指定我的外键我可以创建表之间的关系图吗?
EN

回答 8

Stack Overflow用户

发布于 2016-12-01 20:42:08

我知道这个问题很久以前就被问过了,但我找到了。它直接内置于GUI中。您只需拖动并使这些名称、类型选项卡小一点,即可为外键选项卡腾出空间。将鼠标指针放在末尾,然后拖动标题。

我的SQLite浏览器版本是3.7.0。

票数 95
EN

Stack Overflow用户

发布于 2013-11-17 20:31:26

我找不到使用“数据库结构”选项卡定义外键约束的方法。我强烈建议使用脚本来定义表定义和约束,而不是使用图形化编辑器来构建它们-这使得创建新数据库和跟踪对模式的更改变得更加容易。

举个例子,假设我们有两个表:一个定义文件名,另一个指定压缩方法,我们可以在定义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

票数 13
EN

Stack Overflow用户

发布于 2016-02-11 19:10:05

从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)
);

在SQLite环境的DB浏览器(v3.8.0-SQLitev3.9.2)中,当您添加track表的DB字段以及PK、AI和其他列时,您可以找到一个外键列。

在这里,对于本例,您只需在trackartist行中添加artist(artistid)

然后创建外键约束。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16537154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档