我有一个需求,我从Postgres获取转储在内存HyperSQL中运行服务器。
例如,让我们考虑下面的查询来创建一个客户表:
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;
,但它在这种情况下没有帮助。
默认为NULL。您可以更改表以摆脱显式的(显然毫无意义的)默认子句:
alter table customer alter name drop default;
等。我有点惊讶pg_dump没有为你删除它。