Вы, вероятно, хотите это:
CREATE TABLE categories (
categoryID integer,
parentID integer,
setID integer,
name char(255) NOT NULL,
PRIMARY KEY (categoryID, parentID),
FOREIGN KEY (categoryID, parentID) REFERENCES categories(categoryID, parentID)
);
Обратитесь к руководству по поводу синтаксиса .
Ответ на следующий вопрос в комментарии:
CREATE TABLE categories (
categoryID integer,
parentID integer,
setID integer,
name char(255) NOT NULL,
PRIMARY KEY (categoryID, parentID),
UNIQUE (setID, parentID)
FOREIGN KEY (setID, parentID) REFERENCES categories(setID, parentID)
);
Цель внешнего ключа нуждается в каком-то ограничении уникальности. Я цитирую руководство :
Столбцы, на которые ссылаются, должны быть столбцами непереносимого уникального
или ограничение первичного ключа в ссылочной таблице.