国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySql數(shù)據(jù)庫自動遞增值問題

2024-07-24 12:53:57
字體:
來源:轉載
供稿:網(wǎng)友
Create TABLE test(id INT UNSIGNED NOT NULL PrimaRY KEY AUTO_INCREMENT,username VARCHAR(15) NOT NULL)AUTO_INCREMENT = 100;

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

ISAM表

如果把一個NULL插入到一個AUTO_INCREMENT數(shù)據(jù)列里去,MySQL將自動生成下一個序列編號。編號從1開始,并1為基數(shù)遞增。

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

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

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

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

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

如果用replace命令基于AUTO_INCREMENT數(shù)據(jù)列里的值來修改數(shù)據(jù)表里的現(xiàn)有記錄,即AUTO_INCREMENT數(shù)據(jù)列出現(xiàn)在了 replace命令的where子句里,相應的AUTO_INCREMENT值將不會發(fā)生變化。但如果replace命令是通過其它的PrimaRY KEY or UNIQUE索引來修改現(xiàn)有記錄的(即AUTO_INCREMENT數(shù)據(jù)列沒有出現(xiàn)在replace命令的where子句中),相應的 AUTO_INCREMENT值--如果設置其為NULL(如沒有對它賦值)的話--就會發(fā)生變化。

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

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

MyISAM數(shù)據(jù)表

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

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

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

可使用復合索引在同一個數(shù)據(jù)表里創(chuàng)建多個相互獨立的自增序列,具體做法是這樣的:為數(shù)據(jù)表創(chuàng)建一個由多個數(shù)據(jù)列組成的PrimaRY KEY or UNIQUE索引,并把AUTO_INCREMENT數(shù)據(jù)列包括在這個索引里作為它的最后一個數(shù)據(jù)列。這樣,這個復合索引里,前面的那些數(shù)據(jù)列每構成一種獨一無二的組合,最末尾的AUTO_INCREMENT數(shù)據(jù)列就會生成一個與該組合相對應的序列編號。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 陕西省| 元阳县| 雅安市| 吉水县| 道孚县| 乐山市| 柏乡县| 什邡市| 泸水县| 唐海县| 邓州市| 壤塘县| 周口市| 平凉市| 古交市| 策勒县| 宁都县| 正蓝旗| 金昌市| 大田县| 兴文县| 额敏县| 北京市| 太康县| 淮滨县| 原阳县| 清新县| 会宁县| 龙口市| 乌拉特中旗| 交口县| 磐安县| 特克斯县| 英吉沙县| 米脂县| 股票| 牙克石市| 九江市| 松原市| 临沂市| 措美县|