今天上午閒來無事翻看了下資料庫分類表的設計,看到這樣一幕:
當時我好奇的是怎麼cateid自增會存在重複值的問題,然後翻看了下主鍵是由siteid和cateid組成。所以進行了查閱資料:
當多列組成聯合主鍵時、auto_increment屬性的列並不是自顧自得一味的增長,而是配合其他主鍵的列 從而得到唯一約束;如上圖2所示 當siteid值不同時cateid會重歸1開始自增
but這裡有幾個坑需要注意下,為了顯眼我特地設定為紅色:
1:儲存引擎必須為myisam
2:自增主鍵必須為第二列
下面再總結乙個小知識點
英文本母:
位元組數 : 1;編碼:gb2312
位元組數 : 1;編碼:gbk
位元組數 : 1;編碼:gb18030
位元組數 : 1;編碼:iso-8859-1
位元組數 : 1;編碼:utf-8
位元組數 : 4;編碼:utf-16
位元組數 : 2;編碼:utf-16be
位元組數 : 2;編碼:utf-16le
中文漢字:
位元組數 : 2;編碼:gb2312
位元組數 : 2;編碼:gbk
位元組數 : 2;編碼:gb18030
位元組數 : 1;編碼:iso-8859-1
位元組數 : 3;編碼:utf-8
位元組數 : 4;編碼:utf-16
位元組數 : 2;編碼:utf-16be
位元組數 : 2;編碼:utf-16le
1個漢字兩個位元組 16bit,2b.
字元:漢字,數字,字母等
bit——位元
b ——位元組 byte
kb——千位元組
mb——兆位元組
gb——吉位元組
tb——太位元組
1b=8 bit
1kb=1024b
1mb=1024kb
1gb=1024mb
1tb=1024gb
英文本母:
位元組數 : 1;編碼:gb2312
位元組數 : 1;編碼:gbk
位元組數 : 1;編碼:gb18030
位元組數 : 1;編碼:iso-8859-1
位元組數 : 1;編碼:utf-8
位元組數 : 4;編碼:utf-16
位元組數 : 2;編碼:utf-16be
位元組數 : 2;編碼:utf-16le
中文漢字:
位元組數 : 2;編碼:gb2312
位元組數 : 2;編碼:gbk
位元組數 : 2;編碼:gb18030
位元組數 : 1;編碼:iso-8859-1
位元組數 : 3;編碼:utf-8
位元組數 : 4;編碼:utf-16
位元組數 : 2;編碼:utf-16be
位元組數 : 2;編碼:utf-16le
mysql 主鍵自增語句 MySQL 自增主鍵
以下僅考慮 innodb 儲存引擎。自增主鍵有兩個性質需要考慮 單調性每次插入一條資料,其 id 都是比上一條插入的資料的 id 大,就算上一條資料被刪除。連續性插入成功時,其資料的 id 和前一次插入成功時資料的 id 相鄰。自增主鍵的單調性 為何會有單調性的問題?這主要跟自增主鍵最大值的獲取方式...
MySQL設定主鍵自增和非主鍵自增
mysql 每張表只能有1個自動增長字段,這個自動增長字段即可作為主鍵,也可以用作非主鍵使用,但是請注意將自動增長字段當做非主鍵使用時必須必須為其新增唯一索引,否則系統將會報錯。例如 將自動增長字段設定為主鍵 create table t1 id int auto increment primary...
mysql的自增主鍵
autotest表是測試表 mysql版本為5.7 結構如下 1.insert into指定自增主鍵的值時,自增主鍵會變嗎?以下是表中資料的初始值 接著插入自增主鍵9 如果insert指定自增主鍵的值不會導致auto increment值的變化的話,那麼接著不指定自增主鍵的值執行insert語句時,...