mysql非主键自增长

时间:2024-02-22 09:38:22
mysql并非只有主键才能自增长,而是设为键的列就可以设置自增长。
 
如下:
CREATE TABLE t1 (
    id INT,
    col1 INT auto_increment NOT NULL
);
结果如下:
 
 如果把col1列设为键,就可以创建自增。
CREATE TABLE t1 (
    id INT,
    col1 INT auto_increment NOT NULL,
    key(col1)
);
结果如下:
 
 如果我们把id设为主键,仍然可以创建成功。
CREATE TABLE t2 (
    id INT PRIMARY KEY,
    col1 INT auto_increment NOT NULL,
    key(col1)
);
结果如下:
 
所以自增列必须是键,但不一定非是主键。但一张表能否有多个自增列?
答:一张表只能有一个自增列。
CREATE TABLE t3 (
    id INT PRIMARY KEY auto_increment,
    col1 INT auto_increment NOT NULL,
    key(col1)
);
结果如下: