如何制作完整的CREATE TABLE脚本

时间:2016-11-15 19:36:11

标签: sql postgresql create-table pgadmin postgresql-9.5

在为表SCRIPTS | CREATE scripts

创建新脚本时,在pgAdmin中

你得到像

这样的东西
CREATE TABLE public.merchant_tracker_avl
(
  avl_id bigint NOT NULL DEFAULT nextval('merchant_tracker_avl_avl_id_seq'::regclass),
  x_lat numeric(10,6) NOT NULL,
  y_long numeric(10,6) NOT NULL,
  event_time timestamp without time zone NOT NULL,
  CONSTRAINT merchant_tracker_avl_pk PRIMARY KEY (avl_id)
);

问题在于我尝试创建表的序列不存在的其他服务器。

所以我必须手动将脚本更改为...

CREATE TABLE public.merchant_tracker_avl
(
  avl_id serial NOT NULL,
  ....

该脚本生成表格和序列。

那么我如何让pgAdmin生成正确的脚本,所以不必进行那种手动更改?

1 个答案:

答案 0 :(得分:2)

如果存在与实际serial列不同的内容,则显示的脚本就是您所获得的脚本。 serial不是实际数据类型just a convenient syntax shorthand

如果符合所有条件,

pgAdmin 使用serial对SQL DDL代码进行反向工程。

通常情况下,列不是OWNED - 您可以修复:

ALTER SEQUENCE merchant_tracker_avl_avl_id_seq
OWNED BY public.merchant_tracker_avl.avl_id;

相关: