Mysql 自增列
我想在数据库表中创建一个自动增量列,下面是我编写的语法:Mysql 自增列,mysql,sql,mysql-error-1075,Mysql,Sql,Mysql Error 1075,我想在数据库表中创建一个自动增量列,下面是我编写的语法: create table comments ( name varchar(20), mail varchar(30), comment varchar(100), com_no int auto_increment ); 我得到以下错误: 错误1075 42000:表定义不正确;只能有一个自动列,必须将其定义为键 然后我把它作为主键: create table comments ( nam
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服务器版本对应的手册,以了解在第1行“primary_key auto_increment,name varchar20,mail varchar30,comment varchar100”附近使用的正确语法
怎么了?它是主键,没有下划线
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 primary key auto_increment
);
或
根据在线MySQL手册
根据在线MySQL手册。正确的语法如下所示,例如:
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`)
)
create table comments
(
com_no int NOT NULL AUTO_INCREMENT,
name varchar(20),
mail varchar(30),
comment varchar(100),
PRIMARY KEY (com_no)
);
正确的语法如下所示,例如:
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`)
)
create table comments
(
com_no int NOT NULL AUTO_INCREMENT,
name varchar(20),
mail varchar(30),
comment varchar(100),
PRIMARY KEY (com_no)
);
.使用主键代替主键使用主键代替主键在中,只能有一列通常称为,也应定义为。例如:
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`)
)
create table comments
(
com_no int NOT NULL AUTO_INCREMENT,
name varchar(20),
mail varchar(30),
comment varchar(100),
PRIMARY KEY (com_no)
);
有关更多详细信息,请参阅。在中,只有一列通常称为,也应定义为。例如:
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`)
)
create table comments
(
com_no int NOT NULL AUTO_INCREMENT,
name varchar(20),
mail varchar(30),
comment varchar(100),
PRIMARY KEY (com_no)
);
有关更多详细信息,请参阅。当您问一个特定于MySQL的问题时,因为大多数其他SQL RDBMS不使用自动增量,那么您应该用MySQL标记您的问题。当您问一个特定于MySQL的问题时,因为大多数其他SQL RDBMS不使用自动增量,那么您应该用mysql标记。是的,但您的行的开头部分更精细。是的,但您的行的开头部分更精细。int unsigned可能更好unsigned可能更好id int unsigned auto_increment主键完全有效。不知道为什么指定了5的显示宽度,为什么在这个实例中还要麻烦一个呢?id int unsigned auto_increment主键是完全有效的。不知道为什么指定显示宽度为5,在本例中为什么还要麻烦使用一个呢?