我需要从Postgres服务器获取转储,并在内存中的HyperSQL服务器中运行它。
例如,让我们考虑下面的查询来创建一个customer表:
CREATE TABLE customer (
id integer DEFAULT nextval('public.customer_seq'::regclass) NOT NULL,
name character varying(255) DEFAULT NULL::character varying,
contact character varying(255) DEFAULT NULL::character varying,
address character varying(255) DEFAULT NULL::character varying);上面的查询是从pg_dump生成的,但是当我在HyperSQL上运行相同的查询时,它无法识别以::开头的东西,在这里是::character varying和::regclass。
在pg_dump或Postgres手册中找不到任何有用的东西来从转储中排除这些东西。
目前,我正以编程方式在Java中用其他不必要的东西来替换这些东西。有什么更好的方法吗?
注意:我已经在使用SET DATABASE SQL SYNTAX PGS TRUE;了,但在这种情况下它是没有帮助的。
发布于 2021-02-08 17:05:22
默认情况下,NULL是默认的。您可以更改您的表,以消除显式(而且显然毫无意义)默认子句,方法是:
alter table customer alter name drop default;等等,我有点惊讶,pg_dump没有为你丢下它。
https://stackoverflow.com/questions/66100175
复制相似问题