2013-10-31 125 views
1
CREATE TABLE questions 
(
qid INT AUTO_INCREMENT, 
submitterId VARCHAR(8) NOT NULL, 
approverId VARCHAR(8) NOT NULL, 
questionText TEXT NOT NULL UNIQUE, 
answerA VARCHAR(100) NOT NULL, 
answerB VARCHAR(100) NOT NULL, 
answerC VARCHAR(100) NOT NULL, 
answerD VARCHAR(100) NOT NULL, 
difficulty INT NOT NULL, 
category INT NOT NULL, 
correctAnswer INT NOT NULL, 
selectionProb INT NOT NULL, 
status INT NOT NULL 
); 

MySQL中的上述SQL命令有什麼問題? 即時獲取MySQL查詢中的錯誤

錯誤1064(42000):您的SQL語法錯誤;檢查 對應於你的MySQL服務器版本使用附近的正確語法手冊 'TABLE 問題 ( QID INT AUTO_INCREMENT, submitterId VARCHAR(8)NOT NULL, APPR' 在行1

回答

2
  1. 只能有一個自動柱,它必須定義爲一個關鍵。
  2. 密鑰規範中的BLOB/TEXT列無法在沒有密鑰長度的情況下使用。

因此,正確的SQL DDL應爲:

CREATE TABLE questions (
    qid INT AUTO_INCREMENT PRIMARY KEY, 
    submitterId VARCHAR(8) NOT NULL, 
    approverId VARCHAR(8) NOT NULL, 
    questionText TEXT NOT NULL, 
    answerA VARCHAR(100) NOT NULL, 
    answerB VARCHAR(100) NOT NULL, 
    answerC VARCHAR(100) NOT NULL, 
    answerD VARCHAR(100) NOT NULL, 
    difficulty INT NOT NULL, 
    category INT NOT NULL, 
    correctAnswer INT NOT NULL, 
    selectionProb INT NOT NULL, 
    status INT NOT NULL 
); 
+0

輝煌!非常感謝 :) – Bala

0

的idtentity列必須聲明爲PRIMARY或UNIQUE

+0

有上questionText的唯一約束。它不是已經這樣做了嗎? – Bala

0

在您的查詢的末尾添加PRIMARY KEY (qid)

+0

已添加,但沒有工作。 – Bala

0

讓您AUTO INCREMENTNOT NULL並在末尾添加PRIMARY KEY

CREATE TABLE questions 
(
qid INT AUTO_INCREMENT NOT NULL, 
submitterId VARCHAR(8) NOT NULL, 
approverId VARCHAR(8) NOT NULL, 
questionText TEXT NOT NULL, 
answerA VARCHAR(100) NOT NULL, 
answerB VARCHAR(100) NOT NULL, 
answerC VARCHAR(100) NOT NULL, 
answerD VARCHAR(100) NOT NULL, 
difficulty INT NOT NULL, 
category INT NOT NULL, 
correctAnswer INT NOT NULL, 
selectionProb INT NOT NULL, 
status INT NOT NULL, 
PRIMARY KEY (qid) 
);