sqlserver表转pgsql时有自增的列不会转过来(PostgreSQL 实现ID自增的几种方法)
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
一、为现有表添加自增功能方法1:使用SERIAL/BIGSERIAL(简单方案)sql -- 修改现有列 方法2:使用IDENTITY(PostgreSQL 10+标准方案)sql -- 修改现有列 方法3:手动创建序列(灵活方案)sql -- 1. 创建序列 二、设置自增ID从特定值开始1. 查看当前最大ID值sql SELECT MAX(id) FROM public.mis_action_log; 2. 设置序列起始值对于SERIAL/BIGSERIAL序列:sql ALTER SEQUENCE mis_action_log_id_seq RESTART WITH [最大ID值+1]; 对于IDENTITY列:sql ALTER TABLE public.mis_action_log; ALTER COLUMN id RESTART WITH [最大ID值+1]; 3. 自动化脚本(一步完成)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) ); 比较各种方法
三、验证自增设置sql -- 查看序列当前值 四、完整工作流程示例sql -- 1. 添加自增功能(选择一种方法) 注意事项
通过以上步骤,可以为现有表添加自增ID功能,并确保新ID从已有数据的最大ID后开始递增。 该文章在 2025/8/14 9:14:14 编辑过 |
关键字查询
相关文章
正在查询... |