You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PostgreSQL手动插入UUID值的语法问题及正确写法

问题分析与解决方案

你碰到的这个语法错误其实很常见——你手动输入的UUID没有用单引号包裹。PostgreSQL看到没加引号的292a485f-a56a-4938-8f1a-bbbbbbbbbbb1时,会把它解析成一连串的减法操作(比如292a485fa56a再减4938...),这显然不符合SQL语法,所以才会抛出syntax error

正确的手动插入语法

只需要给UUID字符串加上单引号,把它当作字符串常量传入即可:

INSERT INTO DIM_Jour (jour_id, AAAA, MM, JJ, Jour_Semaine, Num_Semaine)
VALUES 
('292a485f-a56a-4938-8f1a-bbbbbbbbbbb1', 2020, 11, 19, 4, 47);

更规范的UUID生成方式

既然你提到最终要使用UUID生成器,推荐直接用PostgreSQL内置的uuid_generate_v4()函数自动生成UUID,这样既避免手动输入的格式错误,也更符合生产环境的做法:

1. 先启用uuid-ossp扩展(如果没启用过)

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

2. 使用函数生成UUID插入

INSERT INTO DIM_Jour (jour_id, AAAA, MM, JJ, Jour_Semaine, Num_Semaine)
VALUES 
(uuid_generate_v4(), 2020, 11, 19, 4, 47);

这样就不会再出现语法错误啦。

内容的提问来源于stack exchange,提问作者Jonath P

火山引擎 最新活动