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

PostgreSQL插入含美元符号的数值报错,求解决方法

解决带美元符号的数值插入NUMERIC字段的语法错误问题

报错原因很明确:你定义的price字段是NUMERIC(19,2)类型,但插入的'$754.65'这类值包含美元符号,数据库无法将带非数字前缀的字符串解析为数值类型,因此抛出"invalid syntax for numeric type"错误。

以下是三种可行的解决方案:

1. 直接修改插入语句,移除美元符号

手动把所有INSERT语句里price值的$去掉,让数值以纯字符串形式传入,数据库会自动解析为NUMERIC类型。修改后的插入语句示例:

insert into car (id, make, model, price) values (1, 'Oldsmobile', 'Intrigue', '754.65');
insert into car (id, make, model, price) values (2, 'Dodge', 'Intrepid', '913.84');
-- 其余语句以此类推

2. 使用数据库字符串处理函数动态去除符号

如果不想手动修改大量数据,可以用数据库的字符串替换函数(比如PostgreSQL的REPLACE())在插入时自动移除$,并显式转换为NUMERIC类型:

insert into car (id, make, model, price) 
values (1, 'Oldsmobile', 'Intrigue', REPLACE('$754.65', '$', '')::NUMERIC(19,2));
insert into car (id, make, model, price) 
values (2, 'Dodge', 'Intrepid', REPLACE('$913.84', '$', '')::NUMERIC(19,2));
-- 其余语句以此类推

3. 从源头上避免带符号的数据

回到Mockaroo平台,在生成数据时将price列的类型设置为纯数值(比如选择Number类型,而非带货币格式的类型),这样下载的原始数据就不会包含美元符号,直接就能用于插入操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 17:12:21