生成随机UUID时遇语法错误:uuid_generate_v4()附近报错
解决PostgreSQL中uuid_generate_v4()语法错误的问题
出现这个错误有两个核心原因:
uuid_generate_v4()属于PostgreSQL的uuid-ossp扩展,默认未启用,数据库无法识别该函数- 列定义语法错误:要给UUID列设置自动生成的默认值,必须用
DEFAULT关键字,不能直接把函数写在类型后面
解决步骤:
- 先启用
uuid-ossp扩展
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
这条语句会自动检查扩展是否存在,不存在则创建,避免重复执行报错。
- 修正建表语句的id列定义
CREATE table cars ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), name varchar, cover varchar, price varchar, engine varchar, fuel varchar, firstRegistration varchar, ps smallint, km int, color varchar, environment text, equipment text, description text, created_at timestamp not null default current_timestamp );
修改后,插入数据时如果不指定id的值,数据库会自动调用uuid_generate_v4()生成随机UUID作为主键值。
内容的提问来源于stack exchange,提问作者emre ayyildiz
相关产品推荐
相关产品推荐

