自动增量列

时间:2010-10-16 13:31:12

标签: mysql sql mysql-error-1075

我想在数据库表中创建一个AUTO_INCREMENT列,这是我写的语法:

create table comments
(
     name varchar(20),
     mail varchar(30),
     comment varchar(100),
     com_no int auto_increment
);

我收到以下错误:

  

错误1075(42000):表定义不正确;只能有一个自动列,必须将其定义为键

然后我把它作为主键:

create table comments
(
    name varchar(20),
    mail varchar(30),
    comment varchar(100),
    com_no int primary_key auto_increment
);

我收到以下错误:

  

错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'primary_key auto_increment,name varchar(20),mail varchar(30),comment varchar(100'在第1行)附近使用正确的语法

出了什么问题???

6 个答案:

答案 0 :(得分:5)

PRIMARY KEY没有下划线。

create table comments
(
    name varchar(20),
    mail varchar(30),
    comment varchar(100),
    com_no int primary key auto_increment
);

create table comments
(
    name varchar(20),
    mail varchar(30),
    comment varchar(100),
    com_no int auto_increment,
    primary key(`com_no`)
);

答案 1 :(得分:2)

 create table comments(
    name varchar(20), 
    mail varchar(30),
    comment varchar(100),
    com_no int auto_increment,
    PRIMARY KEY (com_no)
  );

(根据在线MySQL手册)。

答案 2 :(得分:2)

create table comments
(
    name varchar(20),
    mail varchar(30),
    comment varchar(100),
    com_no int NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (com_no)
);

ref

答案 3 :(得分:2)

使用primary key代替primary_key

答案 4 :(得分:1)

正确的语法如下所示:

CREATE TABLE `admin` (
    `id` INT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
    `userid` VARCHAR(50) NULL DEFAULT '0',
    `pwd` VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)

答案 5 :(得分:1)

MySQL中,只能有一个auto increment列(通常称为identity column),它也应该定义为unique key。例如:

create table comments
(
  com_no int NOT NULL AUTO_INCREMENT,
  name varchar(20),
  mail varchar(30),
  comment varchar(100),
  PRIMARY KEY (com_no)
);

有关详细信息,请参阅MySQL auto increment documentation