在我們有一個需求是更新某個表里面的某個字段,讓這個字段變成一個遞增的值,或者插入某個表中使得某些字段的值是遞增的。下面我們來看看具體的操作:
更改表字段為遞增
首先設置一個變量,初始值為任意數值,這里以0為例:
set @num:=0;
例如我們需要更新rank(排序)這個字段的值。我們可以這樣處理
update tablename set rank=(@num:= @num+1)
添加主鍵
同時也可以給一個沒有主鍵的數據表添加主鍵,例如給表test新加字段id,對這個id字段進行遞增操作,然后再設置為主鍵。
SET @r:=0; UPDATE test SET id=(@r:=@r+1);
插入遞增數據
如果要是向一個表里面插入數據,可以如下操作,例如,我想向臨時表temp表中插入數據,並且保證temp中rank字段是遞增的,寫法如下:
start TRANSACTION; SET @rank:= 20; INSERT into tbl_live_tab_relation(type, tab_id, relate_id, rank, source) SELECT 2,1, id, @rank:= @rank + 1, 0 from tbl_live_room WHERE status=1 and id not in ( SELECT relation.relate_id from tbl_live_tab_relation as relation WHERE relation.tab_id=1 AND relation.type=2 ) order by start_time DESC; COMMIT;