如何在MYSQL插數(shù)據(jù)ID自增的方法。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比羅莊網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式羅莊網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋羅莊地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
如下參考:
1.在添加字段之前,第一個(gè)應(yīng)該首先檢查當(dāng)前tb1表的結(jié)構(gòu),如下圖所示。
2.實(shí)例字段列添加到表,如下所示。
3.再次看表結(jié)構(gòu)和比較之前和之后的情況添加字段,如下圖所示。
4.最后,插入新的數(shù)據(jù)行看到的樣子,最后添加自動(dòng)增長(zhǎng)的字段,如下所示。
注意事項(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清空后,之前的自增序列最大值還是會(huì)被重用。
解決辦法是:
使用 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è)置自增列的步長(zhǎng),可以分為全局級(jí)別和會(huì)話級(jí)別
如果是會(huì)話級(jí)別,那么當(dāng)用戶新建一個(gè)會(huì)話的時(shí)候,那么步長(zhǎng)又回到了全局級(jí)別,所以mysql的步長(zhǎng)跟sqlserver的步長(zhǎng)有很大的不同
mysql不能設(shè)置為 表級(jí)別 的步長(zhǎng)
私信666領(lǐng)取資料
alter table questionlib modify id?int(11) auto_increment;
注意事項(xiàng):
修改后從下一條記錄開始自動(dòng)增長(zhǎng)。如果想讓原來的自動(dòng)增長(zhǎng)就得復(fù)制現(xiàn)有表的結(jié)構(gòu)(無id),添加id并加上AUTO_INCREMENT,然后通過循環(huán),添加n條空記錄,然后對(duì)應(yīng)先前表的id,依次插入數(shù)據(jù)。
擴(kuò)展資料:
mysql自動(dòng)增長(zhǎng)開始值設(shè)置總結(jié)
1、創(chuàng)建表,設(shè)置表主鍵id自動(dòng)增長(zhǎng),默認(rèn)自動(dòng)增長(zhǎng)的起始值為1開始。
2、當(dāng)表數(shù)據(jù)不為空的時(shí)候,重新去修改自動(dòng)增長(zhǎng)id開始值,mysql會(huì)主動(dòng)去核對(duì)你設(shè)置的起始值是否是當(dāng)前數(shù)據(jù)庫已有id的最大值+1; 若是則修改成功,若不是則修改不成功 (默認(rèn)還是id最大值+1)
3、要設(shè)置自動(dòng)增長(zhǎng)為1開始,需要清空表數(shù)據(jù)才行。alter table table_name AUTO_INCREMENT=1
4、若每次直接在數(shù)據(jù)庫里面插入數(shù)據(jù),則會(huì)自動(dòng)的去修改當(dāng)前表的自動(dòng)增長(zhǎng)起始值(設(shè)置自動(dòng)增長(zhǎng)起始值為當(dāng)前插入成功的數(shù)據(jù)的id)
主鍵一般要設(shè)置成自增。
所謂自增,就是在插入的時(shí)候,該字段不需要賦值,會(huì)自動(dòng)+1;
如果我的表有id,name兩個(gè)字段,id自增。插入的時(shí)候只需這樣:
insert
into
tablename(name)
values('zhangsan');//id會(huì)自動(dòng)有值
如果你沒有自增,那就要指明字段了:
insert
into
tablename(id,name)
values(1,'zhangsan');//id不會(huì)自動(dòng)有值