1樓:翱源來是你
大家用的mysql都是這樣吧
如果你要連續的話 也可以實現啊
每次插入之前要判斷max(5.x的版本都有這個函式吧?!)然後再max+1
不過要是刪除的話 就比較麻煩了 好比刪除3 你得把後面的都修改了 建議不要這麼做
2樓:匿名使用者
自動id列,如果刪除了記錄,再插入記錄時,預設不會重用已經刪除的id,因此是不連續的。
但如果確實需要連續的id,則刪除後必須手工修改關於自動增長的值。
如,假如你這個表名為huoli,自動增長列為id,那麼刪除id=4的記錄後,如果想重用id=4,那麼執行如下語句:
alter table `huoli`
modify column `id` int(11) not null auto_increment auto_increment=4;
3樓:匿名使用者
這是正常現在 一般 刪除都會出現這種情況 自增id一般是不會變化的
4樓:神話v藍冰雨
mssql也是這樣的,很正常啊,有啥可奇怪的
sql自增欄位,有資料刪除後,如何實現自增欄位的連續 5
5樓:匿名使用者
對於自增欄位確實有這個問題,也無法改變,這是由於自增欄位的值是內部計算,專每使用一次都會自屬動+1,有點類似線序,你可以使用如下兩種方法解決:
1、自增欄位改為不用手工增加,每次都取最大值+1來儲存
2、不改自增欄位型別,採用邏輯刪除的方法,比如在表中增加一個欄位isdel(1表示已刪除,0或者其它值表示沒有刪除),記錄當前記錄是否屬於刪除狀態,
6樓:匿名使用者
自動實現比較困難。
你就不能自增長的值為序號。
用儲存過程來實現。
7樓:匿名使用者
1.先取消主鍵的自增長,alter table 表名change id id int primary key ;
2.調整資料id順序 update 表名 set id = id - 1 where id > 10;
3.建議刪除一遍後面的空數版據,delete from 表名 where id > 1000;
4.把主鍵自增權長設定回來,alter table 表名 change id id int primary key auto_increment;
8樓:匿名使用者
改sequence的初始值,不過來
這個風源險太大,不建bai議這樣操作。如果你調整序du號之前zhi的那一刻有人往表裡dao插入了一條資料,然後你把序號往前挪了,自增之後插入的id遇到了已存在的序號就要報錯了。另外你這樣做也沒啥意義啊,假如1,2,3。
你把2刪了,依然是不連貫的,何必糾結最後一條記錄產生的不連貫
9樓:穹拓
自增欄位的值自己是不能設定的,所以在原先的表裡面是改是行不通的。您可以把這個表給複製一下,只複製表結構就行,然後把表裡面的資料給複製到新表裡面,直到您誤刪的哪條記錄
10樓:匿名使用者
序號3已經生生了,雖然刪除了,但刪除的只是表記錄,資料庫已經記錄了id,所以再次插入記錄會從4開始。可以不用資料庫自帶的自增序列,改用自己建立序列。
11樓:匿名使用者
跳號對你的資料也沒bai
影響;如果你du感覺很不爽的話你可以自zhi己dao做自增效果,每次內
去除表中自增欄位容
的最大值加一咯;
sql server自帶的自增效果就是這樣,使用過的序號將不再使用。除非你每次刪除最後一條記錄重置一下重新開始自增;
12樓:2011屆畢業生
mysql 資料庫就是這樣的,刪除資料就會斷掉排列順序。要想重新從1開始排序,就要先刪除自增列,在新增自增列(網頁連結)。
其實排列順序不連續不影響我們運算元據的,無非就是看起來不自在而已。
13樓:匿名使用者
斷號問題看看相關貼子吧
不能重排,重排會引起很多問題,只能在後面新增的時候補上
自己寫一個版插入操作的儲存過程權,先判斷有無斷號,有斷號插入斷號,沒有就直接插入
14樓:匿名使用者
更新自增的主鍵值 mysql
alter table tablename auto_increment = auto_increment - 1;
將表的 自增 id 值減 1 即可
15樓:匿名使用者
老鐵,有知道怎麼弄了嗎?我也遇到這個問題了
16樓:下揚州啊
這個自增基本上是沒有具體的意義的,不要追求這個不間斷的視覺效果
凡是自增的,肯定避免不了不連續,這個無關緊要
客戶端可以用行號來作為替代顯示
17樓:匿名使用者
刪除自增欄位後重新建
mysql資料庫中使用delete語句時,一般刪除一條記錄後id會不連續,才能讓序號繼續按順序排列?
18樓:匿名使用者
方法一:
truncate table 你的表名 【這樣不但將資料全部刪除,而且重新定位自增的欄位】
truncate命令是會把自增的欄位還原為從1開始的,或者你試試把table_a清空,
然後取消自增,儲存,再加回自增,這也是自增段還原為1 的方法。
方法二:
deletefrom 你的表名
dbcc checkident(你的表名,reseed,0)【重新定位自增的欄位,讓它從1開始】
19樓:匿名使用者
這個如果你想做的話那只有人為的去更新了。
id是唯一的標識,只要標識的唯一即可。不必要在意是否連續!
20樓:匿名使用者
如果的id欄位是主鍵的話,那就不能輕易改變啊
21樓:匿名使用者
答案肯定是沒有必要這麼做啦!你建立自增id 的原因不就是為了起到唯一索引的目的嗎,既然這樣 那你就沒必要再去人為處理 id,如果去處理,反而會非常影響效能,何苦呢。
22樓:落了的黃葉
沒必要這樣做啦,下次你再插入資料後,id會自動遞增
mysql 自增id,其中一些被刪除後,再新增內容這個自增id還是繼續下去
23樓:還詒爻
因為自增一般都是抄
序列的,序列有開bai始值,步長,結束值,下一du個值,現在值。而zhi且絕對dao
不能出現重複。
我們假設一個序列,按順序插入1-100,100條記錄,然後地51條和第84條有問題,刪除了。
如果再次插入, 應該是從101開始,不然不管是從51開始,還是從84開始?不管從哪個開始,根據步長都會出現重複,所以序列為了管理方便,都會直接記錄已經用過的最大數值,然後從下一個步長開始。
刪除的記錄,序列不會管,只會增加不會減少。不然會增大很多的管理難度。
我曾經見過,在序列建立之前匯入表的,然後建立的序列,後來他們發現這個表不能插入資料了,因為這個數字在表中存在了,那麼就會報錯。而導致沒辦法插入資料。
24樓:柴達納絲微
是正確的。刪除了就不會連續,sql不保證自增欄位必須連續的,如果需要必須連續,不能使用自增欄位,要手動計算id
mysql資料庫刪除一條資料後還想讓新增資料從空缺id處開始。
25樓:山水阿銳
方法1:
truncate table 你的表名
//這樣不但將資料全部刪除,而且重新定位自增的欄位方法2:
delete from 你的表名
dbcc checkident(你的表名,reseed,0)//重新定位自增的欄位,讓它從1開始
方法3:
如果你要儲存你的資料,介紹你第三種方法,by qinyi用phpmyadmin匯出資料庫,你在裡面會有發現哦編輯sql檔案,將其中的自增下一個id號改好,再匯入。
-------------------------truncate命令是會把自增的欄位還原為從1開始的,或者你試試把table_a清空,然後取消自增,儲存,再加回自增,這也是自增段還原為1 的方法。
-----------
mysql資料庫唯一編號欄位(自動編號欄位)在資料庫應用,我們經常要用到唯一編號,以標識記錄。在mysql中可通過資料列的auto_increment屬性
來自動生成。mysql支援多種資料表,每種資料表的自增屬性都有差異,這裡將介紹各種資料表裡的資料列自增屬性。
26樓:匿名使用者
mysql清空表資料後讓自增id仍從空位開始的方法:
1、清空表時使用truncate命令,而不用delete命令mysql> truncate test;
使用truncate命令的好處:
1)、速度快
2)、可以對自增id進行重排,使自增id仍從1開始計算2、清空表資料後,使用alter修改表,mysql>alter table table_name auto_increment=1;
新增以上指令即可。
我想讓資料庫的id在刪除中間一條後,後邊的id可以自動連續下來,怎麼實現?
27樓:匿名使用者
id 這欄位是表中的bai 主鍵吧?
那麼 可能和其
du他表 有關聯 如果改zhi
動了 就要出大dao問題版了
當然了 要是
單表的話你權可以整
delid = 26
delete from tablename where id = delid
update tablename set id = id-1 where id > delid
更新自增的主鍵值 在 mysql 行的通 其他的 資料庫 沒試過
alter table tablename auto_increment = auto_increment - 1;
將表的 自增 id 值減 1 即可
28樓:匿名使用者
用copyupdate語句把id大於26的id全部-1如bai update 表 set id=id-1 where id>26
有一個前提條件du id不能為標識列 如果是標zhi識列 先取消自動標識 然後dao
執行update 語句 執行完畢再把id設定成自動標誌
29樓:匿名使用者
自增id修改起來比較麻煩,你開啟表單想直接修改也是不行的,所以直接update的做法是不管回用的,比較簡答單的方法如下:
alter table 表名 drop column 自增列名alter table 表名 add 自增列名 int identity(1,1)
思想就是先刪除自增列,再新增一列自增列
30樓:匿名使用者
1,可以用trigger解決。 每deleted一條資料,就update他後面的資料id。
2,。。。。
3.。。。。
31樓:懷蔚譙華池
alter
table
表名drop
column
自增列名
alter
table
表名add
自增列名
intidentity(1,1)
思想就是先刪除自增列,再新增一列自增列
mysql 自增id 為什麼我刪除一條記錄後在插入新的記錄id不是按順序了
32樓:匿名使用者
auto_increment是insert的操作計數的,也可以檢視或修改,
檢視:show create table 表名
修改:alter table 表名 auto_increment=數值
33樓:匿名使用者
自增是計算你一共新增過多少條記錄,並不會受刪除的影響。
34樓:
應該設定 auto_increment自增列了
如何在Access資料庫中刪除自增的ID列,如何設定主鍵
開啟表 建立一個bai表 du此時表應該處在設計檢視上 建立一zhi個欄位名稱比 dao如 id 在id的前邊版會出現一個黑色的箭權頭 然後在上邊右鍵 會出來主鍵單擊即可完成 你最好建立一個access資料庫 按照我說的開啟做一下就知道了 資料庫如何設定主鍵 id 自動增長啊 sql語句 在建立表的...
如何刪除資料庫中的一行,如何刪除資料庫中某一列的值
刪除資料庫中的一行分為以下幾個步驟 1 通過資料庫訪問客戶端 例如訪問oracle,使用plsql 使用有刪除許可權的使用者登入資料庫 2 執行刪除指令碼 delete from tablename where id 11 這裡假設刪除的表名為tablename,標識要刪除行的欄位為id,值為11 ...
在Mysql資料庫中如何實現表的多對一關聯?請說具體一點
現在的資料庫基本都是關聯式資料庫,表與表之間的關聯一般都是靠欄位來維持的。版例如3個表,分別是權 使用者資訊表,購物訂單表,帳戶金額明細表 表結構如下 我寫簡單哈 使用者資訊表欄位 userid,username,password 購物訂單表欄位 orderid,userid,goods,price...