2016-07-24 20 views
0

我創造,我已經修改了使用SQLiteT-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個錯誤的表,當我嘗試創建表作爲下面的T-SQL語句如下:

  1. 無法識別的數據類型。 (近 「(」 在位置111)

  2. 預期逗號或關閉托架。(近 「prereq_lesson_id」 在位置112)

  3. 語句的意外的開始。(近 「prereq_lesson_id」 位置112 )

  4. 無法識別的語句類型。(近 「NOT」 在130位)

任何人都可以提供幫助與錯誤?在此先感謝。

回答

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