Столбец автоинкремента - PullRequest
1 голос
/ 16 октября 2010

Я хочу сделать столбец 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 ]

5 голосов
/ 16 октября 2010

Это 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`)
);
2 голосов
/ 16 октября 2010

Используйте primary key вместо primary_key

2 голосов
/ 16 октября 2010
create table comments
(
    name varchar(20),
    mail varchar(30),
    comment varchar(100),
    com_no int NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (com_no)
);

ref .

2 голосов
/ 16 октября 2010
 create table comments(
    name varchar(20), 
    mail varchar(30),
    comment varchar(100),
    com_no int auto_increment,
    PRIMARY KEY (com_no)
  );

(согласно онлайновому руководству по MySQL).

1 голос
/ 16 октября 2010

В 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 .

1 голос
/ 16 октября 2010

Правильный синтаксис выглядит следующим образом:

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`)
)
...