记录一个PostgreSQL旧表导入新表的错误

PostgreSQL数据库在导入数据时如果报错:

错误: 字段 "createtm" 的类型为 timestamp without time zone, 但表达式的类型为 geometry如何解决

那么在检查完两张表对应数据类型无误后应该检查下SQL语句和导入表的顺序问题,如果不按照新表顺序就会报数据类型不匹配的错,通常按照新表重新写SQL就可以正常插入数据了

注:

新表和旧表名字相同就可以照下图倒数第二行geom的写法,不同就按照所给代码的格式来

如果数据库表名是大写(如DB_USER),那么在最后一行就需要改成from "DU_USER"。其他大写的命名也需注意。

附上旧表数据导入代码

id字段为PostgreSQL 内置函数,用于生成一个随机的 UUID。如果报错说明没有在PostgreSQL 数据库中创建 "uuid-ossp" 扩展的 SQL 语句,需要先在开头执行CREATE EXTENSION "uuid-ossp";

insert into 新表 
select
    replace(uuid_generate_v4()::text, '-', '') as id,
	'2023-05-30 11:07:23' as createtm,
    0 as sort,
	null as originid,
    "PUST_NAME" as name,
    geom,
from 旧表;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值