我有以下T-SQL语句用于创建我已修改为与SQLite一起使用的表
CREATE TABLE prerequisite_lesson(
next_lesson_id INT NOT NULL,
prereq_lesson_id INT NOT NULL,
CHECK(prereq_lesson_id) NOT (lesson_id),
CONSTRAINT pk_prereq PRIMARY KEY (lesson_id, prereq_lesson_id),
FOREIGN KEY(next_lesson_id) REFERENCES lessons(lesson_id),
FOREIGN KEY(prereq_lesson_id) REFERENCES lessons(lesson_id));
当我尝试按如下方式创建表时,我遇到了4个错误:
无法识别的数据类型。 (靠近“(”在111位置)
预计会有逗号或结束括号。 (位于第112位的“prereq_lesson_id”附近)
声明开始意外。 (位于第112位的“prereq_lesson_id”附近)
无法识别的声明类型。 (位置130处的“NOT”附近)
有人可以提供错误帮助吗?提前谢谢。
答案 0 :(得分:1)
首先要创建lessons
。
create table lessons(
lesson_id int primary key not null
);
然后有一些约束检查语法。请参阅示例here。同样,对于主键对,可能需要next_lesson_id
而不是lesson_id
。
CREATE TABLE prerequisite_lesson(
next_lesson_id INT NOT NULL,
prereq_lesson_id INT NOT NULL CHECK(NOT(next_lesson_id)),
CONSTRAINT pk_prereq PRIMARY KEY (next_lesson_id, prereq_lesson_id),
FOREIGN KEY(next_lesson_id) REFERENCES lessons(lesson_id),
FOREIGN KEY(prereq_lesson_id) REFERENCES lessons(lesson_id));
完整架构创建小提琴here。