mysql組合主鍵 MySQL自動編號與主鍵

2021-10-17 19:56:47 字數 2276 閱讀 1433

1、自動編號(auto_increment),必須與主鍵組合使用

預設情況下,起始值為1,增量也為1。

2、主鍵(primary key)

每張資料表只能存在乙個主鍵

主鍵保證記錄的唯一性

主鍵自動為not null

3、auto_increment必須與主鍵一起使用,主鍵不一定必須與auto_increment一起使用。

mysql> create table tb3(

-> id smallint unsignedauto_incrementprimary key,

-> username varchar(30) not null

query ok, 0 rows affected (0.35 sec)

mysql>

mysql> show columns from tb3; #檢視資料表結構

| field        | type                       | null | key | default   |       extra          |

| id            | smallint(5) unsigned | no  | pri  | null      | auto_increment |

| username | varchar(30)             | no  |        | null     |

2 rows in set (0.14 sec)

mysql> insert tb3(username) values('john');

query ok, 1 row affected (0.04 sec)

mysql> insert tb3(username) values('tom');

query ok, 1 row affected (0.04 sec)

mysql> insert tb3(username) values('rose');

query ok, 1 row affected (0.02 sec)

mysql> insert tb3(username) values('dimi tar');

query ok, 1 row affected (0.04 sec)

mysql> select * from tb3;

| id | username |

| 1  | john       |

| 2  | tom        |

| 3  | rose        |

| 4  | dimi tar    |

4、建立一張表只有主鍵,沒有auto_increment

mysql> create table tb4(

-> id smallint unsigned primary key,

-> usename varchar(20) not null

query ok, 0 rows affected (0.22 sec)

mysql>

mysql> show columns from tb4;

| field       | type                        | null    | key | default   | extra |

|id         | smallint(5) unsigned  | no     | pri | null      |          |

| usename | varchar(20)              | no     |       | null      |          |

2 rows in set (0.07 sec)

主鍵允許賦值,但不允許存在兩個相同的值

mysql> insert tb4 values(4, 'tom');

query ok, 1 row affected (0.03 sec)

mysql> insert tb4 values(22, 'tom');

query ok, 1 row affected (0.05 sec)

mysql> select * from tb4;

| id    | usename|

| 4    | tom       |

|22  | tom       |

2 rows in set (0.00 sec)

mysql> insert tb4 values(22, 'li');

error 1062 (23000): duplicate entry '22' for key 'primary'

mysql 主鍵自增語句 MySQL 自增主鍵

以下僅考慮 innodb 儲存引擎。自增主鍵有兩個性質需要考慮 單調性每次插入一條資料,其 id 都是比上一條插入的資料的 id 大,就算上一條資料被刪除。連續性插入成功時,其資料的 id 和前一次插入成功時資料的 id 相鄰。自增主鍵的單調性 為何會有單調性的問題?這主要跟自增主鍵最大值的獲取方式...

mysql 主鍵自增長

mysql 資料庫表主鍵自增長的sql語句 1 不控制主鍵的起點 create table emb t dictbustype emb c bustypeid int not null auto increment,emb c bustypeenname varchar 255 not null,e...

Mysql 自增列 主鍵

mysql中假如有 id int auto increment,cid varchar 36 通常情況下都是 id設定為主鍵。假如要設定cid為主鍵。自增列id必需是唯一索引。create table temp id bigint not null auto increment comment 編號...