10

最近、私は SQLite の使用を開始しました (私の研究に必要なため)。SQLite のいくつかの制限に遭遇し、疑問に思っていました: SQLite は同じテーブルに外部キーを作成できないのでしょうか? たとえば、これは私のコードです:

CREATE TABLE Categories
(
    name varchar(20),
    parent_category varchar(20) NULL,
    PRIMARY KEY(name),
    FOREIGN KEY parent_category_fk(parent_category) REFERENCES Categories(name)
)

しかし、SQLiteStudio で SQL を実行しようとすると、外部キーのエラーが発生します。

これが機能しない理由を誰かが知っていますか?

4

1 に答える 1

7

問題は、FK 句の構文が間違っていることです。そのはず:

FOREIGN KEY (parent_category) REFERENCES Categories(name)

FK 制約に名前を付けたい場合は、次のCONSTRAINTようにキーワードのプレフィックスを付けます。

CONSTRAINT parent_category_fk FOREIGN KEY (parent_category) REFERENCES Categories(name)
于 2013-04-12T10:43:17.570 に答える