如何通过pgAdmin GUI在PostgreSQL中创建UUIDv7类型的主键列
如何通过pgAdmin GUI在PostgreSQL中创建UUIDv7类型的主键列
嘿,我最近刚好在PostgreSQL 18里用pgAdmin折腾过UUIDv7主键,确实pgAdmin目前还没专门加个下拉选项让你直接选UUIDv7,但用GUI完全能搞定,给你两种简单的实现方法:
方法一:通过表设计器一步步配置
这适合给现有表加列,或者创建新表时设置:
- 打开pgAdmin,找到你要操作的表,右键点击它,选择「设计表」(Design Table);如果是创建新表,就右键点击「表」选择「创建」→「表」
- 切换到「列」标签页,点击左上角的「+」按钮添加新列
- 填写列名(比如
profile_id),数据类型选uuid - 勾选「不为空」(Not Null)选项——毕竟是主键,不能为空
- 关键步骤:找到「默认值」输入框,直接手动输入
uuidv7(),注意别加引号,这会让PostgreSQL自动用UUIDv7函数生成默认值 - 切换到「约束」标签页,点击「+」按钮选择「主键」,在弹出的窗口里把刚创建的
profile_id列选进去,确认保存 - 最后点击表设计器右下角的「保存」,所有修改就生效了
方法二:用pgAdmin的查询工具直接执行SQL(更快捷)
如果觉得设计器步骤有点绕,直接用pgAdmin自带的查询工具写SQL更高效:
- 右键点击你的目标数据库,选择「查询工具」(Query Tool)
- 在编辑器里输入这段SQL(把
your_table_name换成你实际的表名):
ALTER TABLE your_table_name ADD COLUMN profile_id UUID PRIMARY KEY DEFAULT uuidv7();
- 点击工具栏上的播放图标(执行按钮),跑完就搞定了
小验证技巧
你可以执行下面的SQL确认生成的是UUIDv7:
-- 检查某条记录的UUID是否为v7 SELECT uuid_is_v7(profile_id) FROM your_table_name LIMIT 1;
如果返回t(true),就说明是正确的UUIDv7格式啦。
其实核心就是pgAdmin的界面更新没跟上PostgreSQL 18的新特性,但直接调用uuidv7()函数是完全支持的,不用纠结有没有可视化选项~




