首頁 > 資料庫 > mysql教程 > mysql自增id不連續怎麼辦

mysql自增id不連續怎麼辦

WBOY
發布: 2022-05-16 17:26:43
原創
5880 人瀏覽過

在mysql中,可用“AUTO_INCREMENT”解決自增id不連續的問題,“AUTO_INCREMENT”用於設定主鍵的自動增長,只需將id的自增長設置為1即可,語法為“ ALTER TABLE 表名AUTO_INCREMENT=1”。

mysql自增id不連續怎麼辦

本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql自增id不連續怎麼辦

MySQL在navicat中設定唯一欄位:

索引(選擇欄位) >>> 索引類型(UNIQUE)

當表中存在唯一字段,主鍵id自增時,插入新資料的時候唯一字段已存在,插入失敗

但此時id已自增1,再次插入資料造成id不連續問題。

-- 執行之後,不是表示將插入的id設為1;而是設定插入id為表中id最大值 1。

 ALTER TABLE `table` AUTO_INCREMENT =1;
登入後複製

在insert into 作業前加上上述sql語句,將插入id設定為目前表中存在的id 1;

auto_increment是用於主鍵自動成長的,從1開始成長,當你把第一筆記錄刪除時,再插入第二跳資料時,主鍵值是2,不是1。

例如:

create table `test`
(
`id` int(10) not null auto_increment, -- 表示自增列
`name` varchar(20) not null,
primary key(`id`)
)
登入後複製

auto_increment = 1; -- 表示自增起始大小-- 這樣就可以建立一個表格`test`,id為自增列

-- 執行語句insert into test (`name`) values ('名字');

-- 就可以插入一行資料為: 1 '名字'

擴充資料:

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

1、AUTO_INCREMENT是資料列的屬性,只適用於整數類型資料列。

2、設定AUTO_INCREMENT屬性的資料列應該是正數序列,所以應該把該資料列宣告為UNSIGNED,這樣序列的編號個可增加一倍。

3、AUTO_INCREMENT資料列必須有唯一索引,以避免序號重複(即是主鍵或主鍵的一部分)。 AUTO_INCREMENT資料列必須具備NOT NULL屬性。

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

5、當進行全表刪除時,MySQL AUTO_INCREMENT會從1重新開始編號。

這是因為進行全表操作時,MySQL(和PHP搭配之最佳組合)實際上是做了這樣的優化操作:先把資料表裡的所有資料和索引刪除,然後重建資料表。

如果想刪除所有的資料行又想保留序列編號信息,可這樣用一個帶有where的delete命令以抑制MySQL(和PHP搭配之最佳組合)的優化:delete from table_name where 1;

推薦學習:mysql影片教學

#

以上是mysql自增id不連續怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板