如何在PostgreSQL中执行涉及UUID字段的UPDATE查询?
PostgreSQL UUID字段更新语句错误修正
首先明确错误根源:你提供的UUID值格式不合法。标准UUID的结构是8-4-4-4-12共36个字符(含4个连字符),而你使用的32e9b5cb-d033-4c57-a4b9-dcca911e013最后一段仅11位,缺少1位,导致无法转换为UUID类型,触发invalid input syntax for type uuid错误。
另外你第一个语句中用双引号包裹字符串,这也是错误的——PostgreSQL里双引号用于引用表名、列名等标识符,字符串必须用单引号。
补全正确的UUID后,以下几种语法都可以正常执行:
方法1:使用PostgreSQL类型转换语法
UPDATE public.session SET expired_at = '2025-06-18 15:41:30.489 +00:00' WHERE user_id = '32e9b5cb-d033-4c57-a4b9-dcca911e0130'::uuid;
方法2:使用CAST函数
UPDATE public.session SET expired_at = '2025-06-18 15:41:30.489 +00:00' WHERE user_id = CAST('32e9b5cb-d033-4c57-a4b9-dcca911e0130' AS uuid);
方法3:转换为文本匹配(适合确认UUID字符串准确的场景)
UPDATE public.session SET expired_at = '2025-06-18 15:41:30.489 +00:00' WHERE user_id::text = '32e9b5cb-d033-4c57-a4b9-dcca911e0130';
注:上述示例中已将原UUID补全一位(末尾加0),实际使用时请替换为你真实的完整UUID值。
内容的提问来源于stack exchange,提问作者anta40
相关产品推荐
相关产品推荐

