2013-04-06 84 views
-2

任何想法,爲什麼我不能創建CLinical_QUestions表?在MySQL中創建表錯誤

CREATE TABLE IF NOT EXISTS `test`.`Questions` (
`QuestionID` INT NOT NULL , 
`Question` VARCHAR(45) NULL , 
`VersionNumber` INT NULL , 
`Core` TINYINT(1) NULL , 
PRIMARY KEY (`QuestionID`)) 
ENGINE = InnoDB;  

我不能創建該表

CREATE TABLE IF NOT EXISTS `test`.`Clinical_Questions` (
`ClinicalID` INT NOT NULL , 
`QuestionID` INT NULL , 
`Effective Week` INT NULL , 
PRIMARY KEY (`ClinicalID`) , 
INDEX `QuestionID_idx` (`QuestionID` ASC) , 
CONSTRAINT `QuestionID` 
FOREIGN KEY (`QuestionID`) 
REFERENCES `test`.`Questions` (`QuestionID`) 
ON DELETE NO ACTION 
ON UPDATE NO ACTION, 
CONSTRAINT `ClinicalID` 
FOREIGN KEY (`ClinicalID`) 
REFERENCES `test`.`Clinical` (`ClinicalID`) 
ON DELETE NO ACTION 
ON UPDATE NO ACTION) 
ENGINE = InnoDB; 

ERROR 1005(HY000):無法創建表 'certestdb.Clinical_Questions'(錯誤:121)

CREATE TABLE IF NOT EXISTS `test`.`Overall_Week_Rating` (
`ClinicalID` INT NOT NULL , 
`Instructor_Rating` INT NULL , 
`DateTime_Instructor_Rating` DATETIME NULL , 
`Student_Rating` INT NULL , 
`DateTime_Student_Rating` DATETIME NULL , 
PRIMARY KEY (`ClinicalID`) , 
CONSTRAINT `UserID` 
FOREIGN KEY (`ClinicalID`) 
REFERENCES `test`.`Clinical` (`ClinicalID`) 
ON DELETE NO ACTION 
ON UPDATE NO ACTION) 
ENGINE = InnoDB; 
+0

請問您的MySQL用戶允許你創建表?如果你刪除模式名稱'certestdb',你可以創建它嗎? – halfer 2013-04-06 02:17:50

+0

是的,我已經創建了8個表格 – Jessica 2013-04-06 14:13:07

回答

2

你有如果INDEX處於聲明某處,您的CREATE TABLE聲明中出現錯誤。您應該從索引部分刪除ASC

INDEX `Section_idx` (`Question_Section`) 

,將出現第二個問題是,你有沒有鍵定義在FOREIGN KEY約束,

CONSTRAINT cons_EffectiveDate 
    FOREIGN KEY (`Effective Date`)    -- add column name 
    REFERENCES `certestdb`.`Section` (columnHere) -- add also column name 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 
+0

試圖添加列名稱,它仍然沒有工作 – Jessica 2013-04-07 00:56:25

+0

什麼是完整的eror消息? – 2013-04-07 01:48:04

+0

請參閱編輯問題! – Jessica 2013-04-09 23:44:02