sqlserver表轉(zhuǎn)pgsql時(shí)有自增的列不會(huì)轉(zhuǎn)過來(PostgreSQL 實(shí)現(xiàn)ID自增的幾種方法)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
一、為現(xiàn)有表添加自增功能方法1:使用SERIAL/BIGSERIAL(簡單方案)sql -- 修改現(xiàn)有列 方法2:使用IDENTITY(PostgreSQL 10+標(biāo)準(zhǔn)方案)sql -- 修改現(xiàn)有列 方法3:手動(dòng)創(chuàng)建序列(靈活方案)sql -- 1. 創(chuàng)建序列 二、設(shè)置自增ID從特定值開始1. 查看當(dāng)前最大ID值sql SELECT MAX(id) FROM public.mis_action_log; 2. 設(shè)置序列起始值對(duì)于SERIAL/BIGSERIAL序列:sql ALTER SEQUENCE mis_action_log_id_seq RESTART WITH [最大ID值+1]; 對(duì)于IDENTITY列:sql ALTER TABLE public.mis_action_log; ALTER COLUMN id RESTART WITH [最大ID值+1]; 3. 自動(dòng)化腳本(一步完成)sql DO $$DECLARE max_id bigint;BEGIN SELECT COALESCE(MAX(id), 0) INTO max_id FROM public.mis_action_log; EXECUTE format('ALTER SEQUENCE mis_action_log_id_seq RESTART WITH %s', max_id + 1);END $$; 4. 使用UUID作為自增替代方案(比較麻煩,一般不用)sql
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), name VARCHAR(100) ); ?比較各種方法
三、驗(yàn)證自增設(shè)置sql -- 查看序列當(dāng)前值 四、完整工作流程示例sql -- 1. 添加自增功能(選擇一種方法) 注意事項(xiàng)
通過以上步驟,可以為現(xiàn)有表添加自增ID功能,并確保新ID從已有數(shù)據(jù)的最大ID后開始遞增。 該文章在 2025/8/14 9:14:14 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |