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 編號...