2013-03-13 3 views
0

Я хочу добавить это в SQLite, но я не могу заставить alter table работать с добавлением внешнего ключа. Это выглядит следующим образом:MySQL (?) To 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

+0

Я получаю синтаксическую ошибку для «foreign». – newbie4life

+0

У вас включена поддержка внешнего ключа? (см. http://www.sqlite.org/foreignkeys.html) – Raad

ответ

2

Единственный способ реализовать ограничение внешнего ключа в SQL Lite является во 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