佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > pgsql添加自增序列、設置表某個字段自增操作

pgsql添加自增序列、設置表某個字段自增操作

熱門標簽:Linux服務器 鐵路電話系統(tǒng) 呼叫中心市場需求 百度競價排名 AI電銷 地方門戶網(wǎng)站 網(wǎng)站排名優(yōu)化 服務外包

添加自增序列

CREATE SEQUENCE 表名_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;

設置表某個字段自增

alter table表名 alter column id set default nextval(‘表名_id_seq');

從當前最大id依次遞增

select setval(‘表名_id_seq',(select max(id) from 同一個表名));

大寫字符的表需要加雙引號。例如:

select setval('“表名_id_seq”',(select max(id) from “表名”));

補充:PostgreSQL中設置表中某列值自增或循環(huán)

在postgresql中,設置已存在的某列(num)值自增,可以用以下方法:

//將表tb按name排序,利用row_number() over()查詢序號并將該列命名為rownum,創(chuàng)建新表tb1并將結果保存到該表中
create table tb1 as (select *, row_number() over(order by name) as rownum from tb); 
//根據(jù)兩張表共同的字段name,將tb1中rownum對應值更新到tb中num中
update tb set num=(select tb1.rownum from tb1 where tb.name = tb1.name);
//判斷表tb1的存在并刪除表
drop table if exists tb1;

在postgresql中,循環(huán)設置已存在的某列(num)值為0-9,可以用以下方法:

//將表tb按name排序,利用row_number() over()查詢序號并將該列命名為rownum,創(chuàng)建新表tb1并將結果保存到該表中
create table tb1 as (select *, row_number() over(order by name) as rownum from tb); 
//根據(jù)兩張表共同的字段name,將tb1中rownum對應值更新到tb中num中,由于為0-9循環(huán)自增,則%10
update tb set num=(select tb1.rownum from tb1 where tb.name = tb1.name) % 10;
//判斷表tb1的存在并刪除表
drop table if exists tb1;

其它:附錄一個postgresql循環(huán)的寫法(與上文無關)

 do $$
 declare
 v_idx integer :=0;
 begin
 while v_idx  10 loop
 update tb set num = v_idx;
 v_idx = v_idx + 1;
 end loop;
end $$;

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • pgsql 如何刪除仍有活動鏈接的數(shù)據(jù)庫
  • pgsql的UUID生成函數(shù)實例
  • pgsql 如何手動觸發(fā)歸檔
  • PGSQL實現(xiàn)判斷一個空值字段,并將NULL值修改為其它值
  • pgsql 實現(xiàn)用戶自定義表結構信息獲取
  • pgsql鎖表后kill進程的操作
  • PGSQL 實現(xiàn)把字符串轉換成double類型(to_number())
  • pgsql批量修改sequences的start方式
  • pgsql之pg_stat_replication的使用詳解

標簽:黃山 崇左 衡水 蘭州 湘潭 仙桃 湖南 銅川

巨人網(wǎng)絡通訊聲明:本文標題《pgsql添加自增序列、設置表某個字段自增操作》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    明溪县| 临邑县| 林西县| 枣庄市| 周至县| 隆安县| 闵行区| 洪洞县| 平泉县| 淳化县| 沈阳市| 清水县| 会宁县| 宣化县| 苗栗县| 长宁区| 博客| 九龙坡区| 开原市| 区。| 葫芦岛市| 瑞安市| 宁河县| 漳平市| 游戏| 南通市| 镇巴县| 来宾市| 沾益县| 平果县| 安远县| 宝应县| 嘉善县| 克拉玛依市| 区。| 沂南县| 互助| 荔浦县| 林西县| 体育| 高安市|