You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Psycopg2向PostgreSQL插入数据仅存入单个字符的问题

PostgreSQL插入数据仅单个字符存入的解决方法

首要排查:表字段长度限制

这是导致字符串被截断的最常见原因。检查public.users表中email和password字段的定义,如果字段被设置为CHAR(1)或VARCHAR(1),任何长字符串都会被强制截断为单个字符。

  • 查看字段定义:
SELECT column_name, data_type, character_maximum_length 
FROM information_schema.columns 
WHERE table_name = 'users' AND table_schema = 'public';
  • 修改字段长度(示例调整为支持255位字符):
ALTER TABLE public.users 
ALTER COLUMN email TYPE VARCHAR(255),
ALTER COLUMN password TYPE VARCHAR(255);

代码规范修正(非主因,但建议调整)

你的代码中val变量末尾多了一个冗余逗号,虽然Python会正确识别为4元素元组(与SQL占位符数量匹配),但规范写法更易维护:

val = (email, password, datetime.datetime.now(), False)

验证请求数据完整性

确认请求头传递的email和password是否为完整字符串,可在代码中添加调试打印:

print(f"Received email: {email}, password: {password}")

如果打印结果就是单个字符,问题出在请求发送端,需检查请求构造逻辑。


内容的提问来源于stack exchange,提问作者Arjunjit Bagri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 23:18:21