0

これをSQLiteに追加したいのですが、外部キーの追加で動作するようにaltertableを取得できません。次のようになります。

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

4

1 に答える 1

2

SQL Lite で外部キー制約を実装する唯一の方法は、次の場合CREATE TABLEです。

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

新しい列のデフォルト値が でない限り、この構文を使用しALTER TABLE ... ADD COLUMNて句を含む列を追加することはできません。そうしようとすると、エラーが返されます。REFERENCESNULL

ドキュメンテーション

于 2013-03-13T17:11:58.503 に答える