2013-03-13 101 views
0

我想將此添加到SQLite,但我不能讓alter table使用添加外鍵。 它看起來像這樣:MySQL(?)到SQLite

create table Medlem
(Mnr integer not null,
Namn varchar(6),
Telefon varchar(10),
primary key (Mnr));

create table Sektion
(Skod char(1) not null,
Namn varchar(14),
Ledare integer,
primary key (Skod));

create table Deltar
(Medlem integer not null,
Sektion char(1) not null,
primary key (Medlem, Sektion));

alter table Sektion
add foreign key (Ledare) references Medlem (Mnr);
alter table Deltar
add foreign key (Medlem) references Medlem (Mnr);
alter table Deltar
add foreign key (Sektion) references Sektion (Skod);

+0

你什麼錯誤? – SLaks 2013-03-13 16:50:13

+0

我得到「foreign」的語法錯誤。 – newbie4life 2013-03-13 16:51:08

+0

您是否啓用了外鍵支持? (請參閱http://www.sqlite.org/foreignkeys.html) – Raad 2013-03-13 17:11:18

回答

2

以實現SQL精簡版外鍵約束的唯一方法是在CREATE TABLE

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

這是不可能使用ALTER TABLE ... ADD COLUMN語法添加一個包含REFERENCES子句的列,除非新列的默認值爲NULL。試圖這樣做會返回一個錯誤。

Documentation

+0

謝謝,我想我現在明白了。 – newbie4life 2013-03-13 17:17:13