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 旧表;