国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

MySQLAUTO_INCREMENT的用法與注意事項

數據庫 MySQL
我們今天要向大家講述的是MySQLAUTO_INCREMENT的實際用法與在其實際操作中的代碼的描述,望你瀏覽之后會有所收獲。

此文章有對MySQLAUTO_INCREMENT的實際用法的描述,也有對其相關性能的介紹與MySQL(和PHP搭配之最佳組合)中正確通過數據列的AUTO_INCREMENT屬性來自動生成的實際操作步驟。

用法:

 

  1. CREATE TABLE test  
  2. (  
  3. id INT UNSIGNED NOT NULL Prima(最完善的虛擬主機管理系統)RY KEY AUTO_INCREMENT,  
  4. username VARCHAR(15) NOT NULL  
  5. )  
  6. AUTO_INCREMENT = 100


在數據庫應用,我們經常要用到唯一編號,以標識記錄。在MySQL(和PHP搭配之最佳組合)中可通過數據列的AUTO_INCREMENT屬性來自動生成。MySQL(和PHP搭配之最佳組合)支持多種數據表,每種數據表的自增屬性都有差異,這里將介紹各種數據表里的數據列自增屬性。

ISAM表

如果把一個NULL插入到一個MySQLAUTO_INCREMENT數據列里去,MySQL(和PHP搭配之最佳組合)將自動生成下一個序列編號。編號從1開始,并1為基數遞增。

把0插入AUTO_INCREMENT數據列的效果與插入NULL值一樣。但不建議這樣做,還是以插入NULL值為好。

當插入記錄時,沒有為AUTO_INCREMENT明確指定值,則等同插入NULL值。

當插入記錄時,如果為AUTO_INCREMENT數據列明確指定了一個數值,則會出現兩種情況,情況一,如果插入的值與已有的編號重復,則會出現出錯信息,因為AUTO_INCREMENT數據列的值必須是唯一的;情況二,如果插入的值大于已編號的值,則會把該插入到數據列中,并使在下一個編號將從這個新值開始遞增。也就是說,可以跳過一些編號。

如果自增序列的最大值被刪除了,則在插入新記錄時,該值被重用。

如果用UPDATE命令更新自增列,如果列值與已有的值重復,則會出錯。如果大于已有值,則下一個編號從該值開始遞增。

如果用replace命令基于AUTO_INCREMENT數據列里的值來修改數據表里的現有記錄,即AUTO_INCREMENT數據列出現在了replace命令的where子句里,相應的AUTO_INCREMENT值將不會發生變化。但如果replace命令是通過其它的Prima(最完善的虛擬主機管理系統)RY KEY OR UNIQUE索引來修改現有記錄的(即AUTO_INCREMENT數據列沒有出現在replace命令的where子句中),相應的AUTO_INCREMENT值--如果設置其為NULL(如沒有對它賦值)的話--就會發生變化。

last_insert_id()函數可獲得自增列自動生成的最后一個編號。但該函數只與服務器的本次會話過程中生成的值有關。如果在與服務器的本次會話中尚未生成MySQLAUTO_INCREMENT值,則該函數返回0。

其它數據表的自動編號機制都以ISAM表中的機制為基礎。

MyISAM數據表

刪除最大編號的記錄后,該編號不可重用。

可在建表時可用“AUTO_INCREMENT=n”選項來指定一個自增的初始值。

可用alter table table_name AUTO_INCREMENT=n命令來重設自增的起始值。

可使用復合索引在同一個數據表里創建多個相互獨立的自增序列,具體做法是這樣的:為數據表創建一個由多個數據列組成的Prima(最完善的虛擬主機管理系統)RY KEY OR UNIQUE索引,并把AUTO_INCREMENT數據列包括在這個索引里作為它的最后一個數據列。這樣,這個復合索引里,前面的那些數據列每構成一種獨一無二的組合,最末尾的MySQLAUTO_INCREMENT數據列就會生成一個與該組合相對應的序列編號。

HEAP數據表

HEAP數據表從MySQL(和PHP搭配之最佳組合)4.1開始才允許使用自增列。

自增值可通過CREATE TABLE語句的 AUTO_INCREMENT=n選項來設置。

可通過ALTER TABLE語句的AUTO_INCREMENT=n選項來修改自增始初值。

編號不可重用。

HEAP數據表不支持在一個數據表中使用復合索引來生成多個互不干擾的序列編號。

BDB數據表

不可通過CREATE TABLE OR ALTER TABLE的AUTO_INCREMENT=n選項來改變自增初始值。

可重用編號。

支持在一個數據表里使用復合索引來生成多個互不干擾的序列編號。

InnDB數據表

不可通過CREATE TABLE OR ALTER TABLE的AUTO_INCREMENT=n選項來改變自增初始值。

不可重用編號。

不支持在一個數據表里使用復合索引來生成多個互不干擾的序列編號。

在使用AUTO_INCREMENT時,應注意以下幾點:

AUTO_INCREMENT是數據列的一種屬性,只適用于整數類型數據列。

設置AUTO_INCREMENT屬性的數據列應該是一個正數序列,所以應該把該數據列聲明為UNSIGNED,這樣序列的編號個可增加一倍。

AUTO_INCREMENT數據列必須有唯一索引,以避免序號重復。

AUTO_INCREMENT數據列必須具備NOT NULL屬性。

AUTO_INCREMENT數據列序號的最大值受該列的數據類型約束,如TINYINT數據列的最大編號是127,如加上UNSIGNED,則最大為255。一旦達到上限,AUTO_INCREMENT就會失效。

當進行全表刪除時,MySQLAUTO_INCREMENT會從1重新開始編號。全表刪除的意思是發出以下兩條語句時:

  1. delete from table_name;ortruncate table table_name 

這是因為進行全表操作時,MySQL(和PHP搭配之最佳組合)實際是做了這樣的優化操作:先把數據表里的所有數據和索引刪除,然后重建數據表。如果想刪除所有的數據行又想保留序列編號信息,可這樣用一個帶where的delete命令以抑制MySQL(和PHP搭配之最佳組合)的優化:

  1. delete from table_name where 1; 

這將迫使MySQL(和PHP搭配之最佳組合)為每個刪除的數據行都做一次條件表達式的求值操作。

強制MySQL(和PHP搭配之最佳組合)不復用已經使用過的序列值的方法是:另外創建一個專門用來生成AUTO_INCREMENT序列的數據表,并做到永遠不去刪除該表的記錄。當需要在主數據表里插入一條記錄時,先在那個專門生成序號的表中插入一個NULL值以產生一個編號,然后,在往主數據表里插入數據時,利用LAST_INSERT_ID()函數取得這個編號,并把它賦值給主表的存放序列的數據列。如:

  1. insert into id set id = NULL;insert into main set main_id = LAST_INSERT_ID(); 

可用alter命令給一個數據表增加一個具有MySQLAUTO_INCREMENT屬性的數據列。MySQL(和PHP搭配之最佳組合)會自動生成所有的編號。

要重新排列現有的序列編號,最簡單的方法是先刪除該列,再重建該,MySQL(和PHP搭配之最佳組合)會重新生連續的編號序列。

在不用AUTO_INCREMENT的情況下生成序列,可利用帶參數的LAST_INSERT_ID()函數。如果用一個帶參數的LAST_INSERT_ID(expr)去插入或修改一個數據列,緊接著又調用不帶參數的LAST_INSERT_ID()函數,則第二次函數調用返回的就是expr的值。下面演示該方法的具體操作:

先創建一個只有一個數據行的數據表:

  1. create table seq_table (id int unsigned not null);insert into seq_table values (0); 

接著用以下操作檢索出序列號:update seq_table set seq = LAST_INSERT_ID( seq + 1 );select LAST_INSERT_ID();通過修改seq+1中的常數值,可生成不同步長的序列,如seq+10可生成步長為10的序列。

該方法可用于計數器,在數據表中插入多行以記錄不同的計數值。再配合LAST_INSERT_ID()函數的返回值生成不同內容的計數值。這種方法的優點是不用事務或LOCK,UNLOCK表就可生成唯一的序列編號。不會影響其它客戶程序的正常表操作。

【編輯推薦】

  1. 實現MySQL數據庫同步實例演示
  2. MySQL ROOT密碼的修改指南
  3. MySQL 亂碼處理的破解方案
  4. 巧用c# 連接MySQL中文亂碼問題
  5. MySQL 5 中易忘的使用性較強的命令
責任編輯:佚名 來源: 博客園
相關推薦

2010-05-25 16:46:00

2010-08-09 09:05:41

DB2快照函數

2010-05-11 11:03:41

Mysql索引

2011-05-26 11:22:04

SEO

2021-12-14 14:50:12

synchronizeJava

2021-02-07 07:40:31

Synchronize用法

2010-06-21 14:39:56

光纖測試

2019-04-01 19:38:28

Vue.jsJavascript前端

2013-09-25 10:15:51

閃存存儲優勢注意事項

2009-08-27 10:40:56

Java路徑

2010-05-31 09:58:48

MySQL備份

2009-12-15 17:47:17

VSIP

2021-11-16 10:35:59

云計算云計算環境云應用

2010-11-26 16:27:01

MySQL使用變量

2011-09-26 11:02:10

2020-10-20 14:05:48

用戶需求分析IT

2023-01-14 09:49:11

2011-08-01 12:53:25

iPhone 多線程 線程

2009-12-29 11:03:28

ADO代碼

2010-05-31 14:05:51

點贊
收藏

51CTO技術棧公眾號

原纱央莉成人av片| 91精品久久久久久久久不口人| 日本不卡免费新一二三区| 蜜桃视频在线观看www社区| 亚洲欧洲一区| 亚洲亚裔videos黑人hd| 成人综合视频在线| 伊人久久综合影院| 亚洲天堂免费观看| aa级大片免费在线观看| 日韩一区二区在线观看视频播放| 国产乱码精品一区二区三区卡 | 国产成人无吗| 2022国产精品视频| av片在线免费| 国产99久久久国产精品免费看 | 国产一级做a爰片久久| 蜜臀91精品一区二区三区| 欧美大香线蕉线伊人久久国产精品| 久久精品国内一区二区三区| 91午夜理伦私人影院| 欧一区二区三区| 日韩最新中文字幕电影免费看| 免费黄色片在线观看| 天天综合精品| 日韩精品在线观看一区二区| 狠狠操夜夜操| 国产三级欧美三级日产三级99 | 懂色av一区| 亚洲精品456在线播放狼人| 一区二区三区四区高清视频| 亚洲国产三级网| 日韩精品丝袜美腿| 国产精品嫩草影院久久久| av有声小说一区二区三区| 制服丝袜亚洲网站| 懂色av中文在线| 亚洲激情图片qvod| www亚洲成人| 国产精品萝li| 999精彩视频| 中文字幕一区免费在线观看| 亚洲综合在线网站| 精品污污网站免费看| 成人福利在线观看视频| 在线免费精品视频| 免费电影日韩网站| 亚洲丝袜av一区| 日韩经典一区| 欧美多人乱p欧美4p久久| 大奶一区二区三区| 91午夜理伦私人影院| 欧美日韩ab| 日本aⅴ写真网站免费| 欧美男男青年gay1069videost| 亚洲一级少妇| 亚洲天堂影视av| 香蕉久久精品| 一卡二卡3卡四卡高清精品视频| 久久精品日产第一区二区三区高清版 | 日本天堂一区| 成人a级免费视频| 日韩激情一区二区| 国产福利一区视频| 亚洲乱码日产精品bd| 欧美日韩国产观看视频| 国产精品久久久一区二区三区| 国产精品美女一区二区在线观看| 日韩av视屏| 精品视频久久久| 中文字幕精品影院| 五月天亚洲综合情| 成人sese在线| 麻豆网站在线观看| 日韩欧美一级精品久久| www.欧美.com| 精品99一区二区| 亚洲另类视频| 国产中文字幕在线| 高清av免费一区中文字幕| 欧美性jizz18性欧美| 91欧美在线| 国产系列电影在线播放网址| 国产乱肥老妇国产一区二| 亚洲欧洲综合另类| 欧美日韩123| 午夜神马福利影院| 国产中文日韩欧美| 色综合久久88色综合天天免费| 色琪琪久久se色| 在线观看视频网站你懂得| 成人在线小视频| 欧美体内she精视频| 国产精品视区| 蜜桃视频在线观看播放| 777久久精品一区二区三区无码| 亚洲精品视频二区| 成人av资源站| 日本天堂一区| 青青色在线视频| 久久久久久高清| 亚洲精品aⅴ中文字幕乱码| 懂色av一区二区三区免费看| 亚洲一区二区小说| 97影院理论| 成人综合色站| 亚洲国产三级网| 久久女同性恋中文字幕| 综合伊思人在钱三区| 免费在线黄色网址| 亚洲人成人77777线观看| 在线免费观看羞羞视频一区二区| 国产喂奶挤奶一区二区三区| 精品成人影院| 三区四区电影在线观看| 一本—道久久a久久精品蜜桃| 精品国产网站地址| 亚洲黄网站在线观看| 欧美精品色网| 性国裸体高清亚洲| 中文字幕av不卡在线| 91大片在线观看| 亚洲男人的天堂在线播放| 亚洲国产激情av| 影音先锋久久精品| 日韩不卡免费高清视频| av电影资源| 欧美日韩国产免费一区二区三区| 亚洲人成电影在线播放| 亚洲欧洲精品一区二区三区不卡| 欧美三级第一页| 日本美女久久| 一二三区在线视频| 中文字幕欧美人与畜| 亚洲3p在线观看| 日韩一区二区三区电影| 国产色91在线| 国产精品久久久亚洲一区| 日韩欧国产精品一区综合无码| 一二三四社区在线视频6| 日本黄色播放器| 国产成人精品久久| 日韩av中文字幕在线| 亚洲女同女同女同女同女同69| 久热精品在线| 国产成人精品三级高清久久91| 中国av在线播放| 可播放的18gay1069| 亚欧精品在线| 国产精品日韩精品| 亚洲一区av在线播放| 欧美日韩精品在线播放| 国产福利91精品| 亚洲影视一区| 美女精品久久| а天堂中文在线官网| 男女午夜网站| 国产精品自拍合集| 97人人香蕉| 97在线视频免费播放| 精品国产乱码久久久久久闺蜜| 亚洲精品成人a在线观看| 久久99久久99| 天堂99x99es久久精品免费| tube8在线hd| 国产视频第一区| 国产videos| www.国产二区| 成人精品一二区| 97精品国产97久久久久久春色 | 国产精品久久久久久久久久免费| 亚洲电影免费观看| 日本二三区不卡| 国产精品久久久久久户外露出| 精品一区二区三区免费观看| 天天影视欧美综合在线观看| 国产麻豆一区二区三区| 欧美寡妇性猛交xxx免费| 在线资源av| 欧美精品久久久久久久久25p| 免费看污污视频| 免费精品视频一区| 91久久久一线二线三线品牌| 性色av一区二区三区| 亚洲日韩欧美视频一区| 欧美一级免费大片| 在线视频观看一区| 亚洲一区二区四区蜜桃| 99视频精品免费视频| 精品一区二区日韩| 欧美一级久久| 国自产拍偷拍福利精品免费一| 亚洲国产欧美日韩在线观看第一区| 国产精品一区二区av影院萌芽| a级影片在线观看| 国产精品ⅴa有声小说| 91热爆在线观看| 嫩草视频在线观看| xxxx69视频| 尤物国产在线观看|