如何在MYSQL插數(shù)據(jù)ID自增的方法。
目前創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、荷塘網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
如下參考:
1.在添加字段之前,第一個(gè)應(yīng)該首先檢查當(dāng)前tb1表的結(jié)構(gòu),如下圖所示。
2.實(shí)例字段列添加到表,如下所示。
3.再次看表結(jié)構(gòu)和比較之前和之后的情況添加字段,如下圖所示。
4.最后,插入新的數(shù)據(jù)行看到的樣子,最后添加自動增長的字段,如下所示。
注意事項(xiàng):
MySQL使用的SQL語言是訪問數(shù)據(jù)庫最常用的標(biāo)準(zhǔn)語言。MySQL軟件采用雙重許可政策,分為社區(qū)版,商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特性,一般中小網(wǎng)站開發(fā)選擇MySQL作為數(shù)據(jù)庫。
1、創(chuàng)建表時(shí)指定AUTO_INCREMENT自增值的初始值(即起始值):
CREATE TABLE XXX (ID INT(5) PRIMARY KEY AUTO_INCREMENT) AUTO_INCREMENT=100;
2、通過 ALTER TABLE 修改初始值(但是要大于表中的 AUTO_INCREMENT 自增值,否則設(shè)置無效):
ALTER TABLE XXX AUTO_INCREMENT=100;
3、如果自增序列的最大值被刪除了,則在插入新記錄時(shí),該值被重用:
就是說如果表中原本有AUTO_INCREMENT屬性值連續(xù)為78、100的值,但100這個(gè)數(shù)據(jù)被刪除了,下此再添加數(shù)據(jù)的時(shí)候自增值為101,100被重用了。
即使在你將整個(gè)表中的所有數(shù)據(jù)delete清空后,之前的自增序列最大值還是會被重用。
解決辦法是:
使用 ALTER TABLE XXX AUTO_INCREMENT=0; 重新設(shè)置自增初始值。
設(shè)置自增列
MYSQL的自增列一定要是有索引的列,設(shè)置種子值要在表的后面設(shè)置
--mysql
-- 設(shè)置自增ID從N開始
CREATE TABLE empautoinc(
ID INT PRIMARY KEY AUTO_INCREMENT
) AUTO_INCREMENT = 100 ; --(設(shè)置自增ID從100開始)
insert into empautoinc(id) values(null);
Query OK, 1 row affected (0.00 sec)
mysql select * from empautoinc;
+-----+
| ID |
+-----+
| 100 |
+-----+
1 row in set (0.00 sec)
show table status like 'empautoinc'G;
*************************** 1. row ***************************
Name: empautoinc
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 1
Avg_row_length: 16384
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: 101
Create_time: 2016-10-27 01:50:32
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)
設(shè)置自增列的步長,可以分為全局級別和會話級別
如果是會話級別,那么當(dāng)用戶新建一個(gè)會話的時(shí)候,那么步長又回到了全局級別,所以mysql的步長跟sqlserver的步長有很大的不同
mysql不能設(shè)置為 表級別 的步長
私信666領(lǐng)取資料