文章詳情頁
MySQL中如何給一個字段遞增賦值
瀏覽:2日期:2023-07-28 19:59:55
目錄MySQL給一個字段遞增賦值mysql set @rownum 變量 實現字段遞增賦值之前的需求新需求mysql 字段遞增賦值實現總結MySQL給一個字段遞增賦值
在mysql中,設計表時設計的是一次遞增,有時中間會刪除一兩行,導致ID不連續,這時,可以采用以下方法將ID改為連續的。
首先設置一個變量,初始值為0:
set @r:=0;然后更新表中對應的ID列:
update tablename set id=(@r:=@r+1)如果是插入,那就找一個記錄多的表t1
set @r:=0;insert into t select @r:=@r+1 from t1 limit 0, 2000mysql set @rownum 變量 實現字段遞增賦值講述Mysql數據庫如何實現字段遞增賦值,解決門店重新連續編號問題。先看下應用場景。
之前的需求有個門店信息表,包含門店名稱、門店類型等信息,表結構如下:
CREATE TABLE `sale_zd_shops` (? `sid` bigint(20) NOT NULL AUTO_INCREMENT,? `shop_id` varchar(32) NOT NULL COMMENT '門店ID,一串隨機數',? `shop_name` varchar(100) NOT NULL COMMENT '門店名稱',? `shop_nick` varchar(30) DEFAULT NULL COMMENT '門店別名',? `shop_type` int(11) DEFAULT NULL COMMENT '門店類型',新需求因為門店重名概率比較多,尤其業務員溝通時幾乎用門店別名(簡稱)為主,重名概率更高,因此不利于業務溝通,為此提出對門店進行編號,簡單起見1000開始往上遞增編號,新表結構如下:
CREATE TABLE `sale_zd_shops` (? `sid` bigint(20) NOT NULL AUTO_INCREMENT,? `shop_id` varchar(32) NOT NULL COMMENT '門店ID,一串隨機數',? `shop_no` varchar(32) NOT NULL COMMENT '門店編號,1000往上遞增',? `shop_name` varchar(100) NOT NULL COMMENT '門店名稱',? `shop_nick` varchar(30) DEFAULT NULL COMMENT '門店別名',? `shop_type` int(11) DEFAULT NULL COMMENT '門店類型',修改完表結構后,還需要進行shop_no數據處理,由于已經有好幾萬門店數據,不可能一一手工修改,為此需要sql 批處理。
mysql 字段遞增賦值實現set @rownum=10000;update sale_zd_shopsSET shop_no = (select @rownum := @rownum +1 as nid);處理結果
sidshop_idshop_noshop_nameshop_type18fasdffsaer10001發廣告古古怪怪1028fasd12fsaer10002發廣告挺有意義2034fasddfsaer10003發廣挺告有意義20–––––<總結以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
排行榜
