使用pgAdmin向PostgreSQL添加数据失败:uuid格式错误求助
问题解决:pgAdmin手动插入PostgreSQL数据报UUID格式错误
错误原因
你的表id字段是UUID数据类型,但你手动输入的"111"不符合UUID的合法格式(UUID是36位带连字符的字符串,比如550e8400-e29b-41d4-a716-446655440000),所以数据库抛出格式错误。
解决方法
方法1:手动输入合法UUID
- 在pgAdmin插入数据时,点击
id字段旁的闪电图标(UUID生成按钮),自动生成符合格式的UUID值,再填写name字段保存即可。 - 也可以自己构造合法UUID,格式遵循
8-4-4-4-12的字符段结构,由字母(a-f)和数字组成。
方法2:让Django自动生成UUID(推荐)
确保你的Django模型中id字段配置了自动生成逻辑:
import uuid from django.db import models class YourModel(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) name = models.CharField(max_length=255)
default=uuid.uuid4会让Django在创建对象时自动生成UUIDeditable=False会让该字段在Django后台和pgAdmin中不可编辑,手动插入时只需填写name,id由数据库自动生成
方法3:改用自增整数作为主键
如果不需要UUID作为主键,修改模型并执行迁移:
from django.db import models class YourModel(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=255)
运行以下命令更新数据库:
python manage.py makemigrations python manage.py migrate
之后就可以手动输入整数类型的id值了。
内容的提问来源于stack exchange,提问作者Branch
相关产品推荐
相关产品推荐

