1

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

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

我收到以下错误:

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

然后我把它作为主键:

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

我收到以下错误:

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

怎么了???

4

6 回答 6

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`)
);
于 2010-10-16T13:34:37.747 回答
2
 create table comments(
    name varchar(20), 
    mail varchar(30),
    comment varchar(100),
    com_no int auto_increment,
    PRIMARY KEY (com_no)
  );

(根据在线 MySQL 手册)。

于 2010-10-16T13:35:37.650 回答
2
create table comments
(
    name varchar(20),
    mail varchar(30),
    comment varchar(100),
    com_no int NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (com_no)
);

参考

于 2010-10-16T13:36:52.970 回答
2

使用primary key代替primary_key

于 2010-10-16T13:37:05.790 回答
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`)
)
于 2010-10-16T13:35:57.950 回答
1

MySQL中,只能有一个自增列(通常称为标识列),它也应该定义为唯一键。例如:

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

有关更多详细信息,请参阅MySQL 自动增量文档

于 2010-10-16T13:38:04.853 回答