Database-Design
外鍵約束失敗:SQlite3
我有兩個表,創建如下,
sqlite> CREATE TABLE Artists( ...> ArtistId INTEGER PRIMARY KEY, ...> ArtistName TEXT NOT NULL ...> ); sqlite> CREATE TABLE Albums( ...> AlbumId INTEGER PRIMARY KEY, ...> AlbumName TEXT NOT NULL, ...> Year TEXT NOT NULL, ...> ArtistId INTEGER NOT NULL, ...> FOREIGN KEY(ArtistId) REFERENCES Artists(ArtistId) ...> );
.table
返回以下內容,sqlite> .table Albums Artists
外鍵雜注設置為
ON
sqlite> PRAGMA foreign_keys; 1
但是,當我嘗試按如下方式插入數據時,導致 FOREIGN KEY 約束失敗。
sqlite> INSERT INTO Albums VALUES (NULL, 'Killers', '1981', 7); Error: FOREIGN KEY constraint failed sqlite>
我是一名數據庫學習者。有人能指出我做錯了什麼嗎?
您現在嘗試插入值列表中不存在的
Albums.ArtistId
值 ( )。所以插入失敗。7``Artisis.ArtistId
您不能插入 的專輯
<unknown>
,FK 聲稱這是不可能的,並且伺服器阻止了這一點。先插入藝術家
ArtistId=7
,然後插入他的專輯。