mysql自动增长(auto_increment)约束问题

时间:2021-07-07 09:07:53
请问下面俩个个sql语句那个正确,为什么?
1, mysql> create table a1(id int primary key auto_increment,name text);
2, mysql> create table a2(id int auto_increment,name text);


当我的想要自动增长的字段添加主键约束之后,则可以编译成功
mysql> create table a1(id int primary key auto_increment,name text);
Query OK, 0 rows affected (0.01 sec)


当该字段没有添加主键约束,直接自增长则会出现错误
mysql> create table a2(id int auto_increment,name text);
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key(想要自动增长必须给他一个键(key))

4 个解决方案

#1


第一个正确。如果想让自增长的列不是主键,可以设置随意一个键就可以。
create table tab_01(
id int auto_increment not null,
test varchar(10),
key(id)
)

#2


第一条创建语句是对的

#4


这应该是为了能让自增列不重复,且速度快,才 要求强制使用一个key,说白了就是要求用索引

#1


第一个正确。如果想让自增长的列不是主键,可以设置随意一个键就可以。
create table tab_01(
id int auto_increment not null,
test varchar(10),
key(id)
)

#2


第一条创建语句是对的

#3


#4


这应该是为了能让自增列不重复,且速度快,才 要求强制使用一个key,说白了就是要求用索引