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

首頁 > 數據庫 > MySQL > 正文

mysql自增id不連續怎么解決

2024-07-24 12:33:00
字體:
來源:轉載
供稿:網友
  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自增id不連續怎么解決”的內容就介紹到這里了,感謝大家的閱讀。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 噶尔县| 宣恩县| 瑞丽市| 盖州市| 阿拉善右旗| 山东省| 永寿县| 通州市| 观塘区| 合阳县| 张北县| 扶余县| 无为县| 慈利县| 丰原市| 佳木斯市| 都兰县| 青阳县| 六盘水市| 格尔木市| 昭平县| 同仁县| 庄河市| 任丘市| 丰城市| 兖州市| 上林县| 定结县| 内江市| 康马县| 高安市| 台山市| 蓬安县| 德清县| 九龙坡区| 彝良县| 碌曲县| 张家口市| 南漳县| 长沙市| 朝阳市|