mysql 去除列的自增長 mysql自增長列

2021-10-20 22:41:21 字數 3644 閱讀 7985

自增長列必須是索引列,否則無法建立成功表,對myisma和innodb都一樣

(localhost@testdb)[root]> create table test5 (id int auto_increment,name varchar(10))  engine=innodb;

error 1075 (42000):

(localhost@testdb)[root]>

(localhost@testdb)[root]>

(localhost@testdb)[root]> create table test5 (id int auto_increment,name varchar(10),index(id))  engine=innodb;

query ok, 0 rows affected (0.01 sec)

(localhost@testdb)[root]> create table test5 (id int auto_increment,name varchar(10))  engine=myisam;

error 1075 (42000):

(localhost@testdb)[root]> create table test5 (id int auto_increment,name varchar(10),index(id))  engine=myisam;

query ok, 0 rows affected (0.00 sec)

(localhost@testdb)[root]>

(localhost@testdb)[root]>

(localhost@testdb)[root]>

建立成功後id列沒有插入資料,但是可以自動增長

(localhost@testdb)[root]> insert into test5(name) values('aa'),('bb'),('cc');

query ok, 3 rows affected (0.00 sec)

(localhost@testdb)[root]> select * from test5;

| id | name |

|  1 | aa   |

|  2 | bb   |

|  3 | cc   |

3 rows in set (0.00 sec)

索引(localhost@testdb)[root]> (localhost@testdb)[root]> show index from test5;

| table | non_unique | key_name | seq_in_index | column_name | collation | cardinality | sub_part | packed | null | index_type | comment | index_comment |

| test5 |          1 | id       |            1 | id          | a         |        null |     null | null   |      | btree      |         |               |

1 row in set (0.00 sec)

刪除表裡的資料,在插入資料id列會依據原來的值繼續增長

(localhost@testdb)[root]> delete from test5;

query ok, 3 rows affected (0.00 sec)

(localhost@testdb)[root]>

(localhost@testdb)[root]>

(localhost@testdb)[root]> select * from test5;

empty set (0.00 sec)

(localhost@testdb)[root]> insert into test5(name) values('aa'),('bb'),('cc');

query ok, 3 rows affected (0.00 sec)

(localhost@testdb)[root]> select * from test5;

| id | name |

|  4 | aa   |

|  5 | bb   |

|  6 | cc   |

3 rows in set (0.00 sec)

truncate 表裡的資料後在插入資料,id列會從1開始增長。

(localhost@testdb)[root]> truncate table test5;

query ok, 0 rows affected (0.00 sec)

(localhost@testdb)[root]> select * from test5;

empty set (0.00 sec)

(localhost@testdb)[root]> insert into test5(name) values('aa'),('bb'),('cc');

query ok, 3 rows affected (0.00 sec)

(localhost@testdb)[root]> select * from test5;

| id | name |

|  1 | aa   |

|  2 | bb   |

|  3 | cc   |

3 rows in set (0.00 sec)

(localhost@testdb)[root]>

對於復合索引的自增長列

myisam引擎的自增長列,在索引中是非前導列可以建立成功

innodb引擎的自增長列,在索引中必須是前導列,表才能建立成功

(localhost@testdb)[root]> create table test4 (id1 int auto_increment,id2 int,name varchar(10),index(id2,id1))  engine=myisam;

query ok, 0 rows affected (0.00 sec)

(localhost@testdb)[root]>

(localhost@testdb)[root]>

(localhost@testdb)[root]> drop table test4;

query ok, 0 rows affected (0.00 sec)

(localhost@testdb)[root]> create table test4 (id1 int auto_increment,id2 int,name varchar(10),index(id2,id1))  engine=innodb;

error 1075 (42000):

(localhost@testdb)[root]>

(localhost@testdb)[root]>

(localhost@testdb)[root]> create table test4 (id1 int auto_increment,id2 int,name varchar(10),index(id1,id2))  engine=innodb;

query ok, 0 rows affected (0.01 sec)

(localhost@testdb)[root]>

(localhost@testdb)[root]>

(localhost@testdb)[root]>

mysql標識列 自增長列

直接po 和案例 標識列 又稱為自增長列 含義 可以不用手動的插入值,系統提供預設的序列值 特點 1 標識列必須和主鍵搭配嗎?不一定,但要求是乙個key 2 乙個表可以有幾個標識列?至多乙個!3 標識列的型別只能是數值型 4 標識列可以通過 set auto increment increment ...

mysql 標識列 自增長列

1.含義 可以不用手動插入值,系統提供預設的序列值 2.特點 1 標識列不一定必須和主鍵搭配,但要求是乙個key 主鍵 unique 外來鍵 2 乙個表最多有乙個標識列 3 標識列的型別只能是數值型 int float double等 4 標識列可以通過 set auto increment inc...

133 標識列 自增長列

特點 1 表示列必須和主鍵搭配嗎?不一定,但要求是乙個key 2 乙個表可以有幾個標識列?至多乙個!3 標識列的型別,只能是數值型。4 標識類可以通過set auto increment 值,來設定步長 建立表時設定標識列 create table tab identity id int prima...