我有一个名为Categories的表。
它有4列:
CategoryID - INT(primary Key),
CategoryName - NVARCHAR(32),
CategoryImage - NVARCHAR(32),
LanguageCode - NVARCHAR(8)(foreign key).
它还有一个表格Languages.It有两列:
LanguageCode - NVARCHAR(8)(primary key),
LanguageName - NVARCHAR(16).
如何使用sqlite管理器在sqlite
中为LanguageCode创建外键,该管理器可以从firefox中的插件下载
答案 0 :(得分:3)
为此,您可以在官方文档中使用此示例:
CREATE TABLE artist(
artistid INTEGER PRIMARY KEY,
artistname TEXT
);
CREATE TABLE track(
trackid INTEGER,
trackname TEXT,
trackartist INTEGER -- Must map to an artist.artistid!
);
对于表格跟踪,您可以通过以下方式创建foreignKey:
CREATE TABLE track(
trackid INTEGER,
trackname TEXT,
trackartist INTEGER,
FOREIGN KEY(trackartist) REFERENCES artist(artistid)
);
如果您在MacOSX或iOS上进行开发,我还建议您使用CoreData。
<强>更新强>
在SQliteManager文档中,您可以找到答案:
1。 启用外键支持
可以通过转到“数据库设置”选项卡并将“外键”开关设置为“开”,为每个数据库会话手动启用外键。
在打开数据库时自动启用外键支持。
转到菜单栏中的“工具”下拉菜单,然后选择“打开连接SQL”选项卡。 在On-Connect SQL选项卡上,在选项卡上的文本框中输入以下行。
PRAGMA foreign_keys = ON;
2。 将外键约束添加到现有表
理想情况下,创建表时应包含任何必要的外键约束。
话虽这么说,目前可以使用SQLite Manager来管理鞋袜&#34;通过以下方法将外键放入不存在的表中。
重要 - 在尝试更改包含有价值数据的任何表的结构之前,请首先制作该表的备份副本。
SQLite只有有限的ALTER TABLE支持,这意味着每当SQLite Manager对表进行任何更改而不是重命名或添加列时,它实际上都是删除表并重新创建它。另外,要成功将外键添加到已包含数据的现有表中,该表不得包含任何与此约束冲突的孤立记录。
在“列”文本框中,右键单击列出的最后一列名称以显示上下文菜单,然后选择“编辑列”。
请注意,如果TABLE定义中的最后一列是PRIMARY KEY,则需要首先添加新列,然后编辑新列的列类型以添加FOREIGN KEY定义。
在“列类型”框中,在数据类型后附加逗号和FOREIGN KEY定义。 单击“更改”按钮,然后单击“危险操作”对话框中的“是”按钮。