Создание внешнего ключа в той же таблице SQLite

Недавно я начал использовать 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)
)

Но это дает мне ошибку для внешнего ключа, когда я пытаюсь выполнить SQL в SQLiteStudio.

Кто-нибудь знает, почему это не работает?


person user2273652    schedule 12.04.2013    source источник


Ответы (1)


Проблема в том, что у вас неправильный синтаксис для предложения FK. Должен быть:

FOREIGN KEY (parent_category) REFERENCES Categories(name)

Если вы хотите назвать ограничение FK, вы делаете это с префиксом ключевого слова CONSTRAINT, например так:

CONSTRAINT parent_category_fk FOREIGN KEY (parent_category) REFERENCES Categories(name)
person Donal Fellows    schedule 12.04.2013