2014-03-27 80 views
2

我有一個名爲Categories的表。如何使用sqlite管理器在sqlite中創建外鍵

它有4列:

CategoryID - INT(primary Key), 
CategoryName - NVARCHAR(32), 
CategoryImage - NVARCHAR(32), 
LanguageCode - NVARCHAR(8)(foreign key). 

它有一個更表Languages.It有2列:使用SQLite經理

LanguageCode - NVARCHAR(8)(primary key), 
LanguageName - NVARCHAR(16). 

我怎麼能在sqlite創建語言代碼的外鍵,其可以從Firefox中的插件下載

回答

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

對於表來跟蹤你可以用這種方式創建外鍵:

CREATE TABLE track(
trackid  INTEGER, 
trackname TEXT, 
trackartist INTEGER, 
FOREIGN KEY(trackartist) REFERENCES artist(artistid) 
); 

SQLite Foreign Key Support

我也建議你使用CoreData如果你MacOSX上或iOS開發。

UPDATE:

在的SQLiteManager文檔,你可以找到答案:

1. 啓用外鍵支持

外鍵可以進入到手動啓用每個數據庫會話數據庫設置選項卡並將外鍵設置爲開。

在打開數據庫時自動啓用外鍵支持。

轉到菜單欄的工具下拉菜單並選擇打開連接SQL選項卡。 在On-Connect SQL選項卡上,將以下行輸入到選項卡上的文本框中。

PRAGMA foreign_keys = ON;

2. 添加一個外鍵約束到現有的表

理想的情況下,任何必要的外鍵約束應該是創建表時已包括在內。

話雖這麼說,有可能在目前的時間,使用SQLite Manager來「鞋拔子」一個外鍵,其中沒有通過下面的方法存在的表。

重要 - 試圖改變這種包含重要數據的任何表的結構之前,該表的備份副本第一。

SQLite的僅具有有限的ALTER TABLE支持這意味着每當SQLite的管理器進行任何更改爲比重命名或添加列以外的表時,它基本上刪除表並重新創建它。此外,成功添加一個外鍵,它已經包含數據的現有表,該表必須不包含任何孤立記錄將與此約束衝突。

在列文本框中,右鍵單擊列出的最後一列名稱以調出上下文菜單並選擇編輯列。

請注意,如果TABLE定義中的最後一列是PRIMARY KEY,則需要首先添加一個新列,然後編輯新列的列類型以添加​​FOREIGN KEY定義。

在列類型框中,在數據類型之後附加一個逗號和FOREIGN KEY定義。 單擊更改按鈕,然後單擊危險操作對話框上的是按鈕。

Foreign Keys Support in SQLite Manager

+1

我想通過創建編程 – user2552751

+0

我有更新我的答案,但我建議你看一點在任何數據庫開始修改之前的SQL語法SQLite的經理做 – Mettek