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命令有什么问题?我越来越

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“TABLE questions (qid INT AUTO_INCREMENT, submitterId VARCHAR(8) NOT NULL, appr”附近使用正确的语法

4

4 回答 4

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
);
于 2013-10-31T15:04:20.523 回答
0

PRIMARY KEY (qid)在查询末尾添加。

于 2013-10-31T15:00:50.173 回答
0

标识列必须声明为 PRIMARY 或 UNIQUE

于 2013-10-31T14:58:57.507 回答
0

制作你的AUTO INCREMENT NOT NULLPRIMARY 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)
);
于 2013-10-31T15:02:06.397 回答