繁体   English   中英

如何在不转储的情况下更改postgresql中列的位置

[英]How to change the position of column in postgresql without dumping

我知道唯一的解决方法是转储表,然后使用所需列的正确定位重新创建整个数据库。

但问题是其中一列是数据库中许多表的外键,因此不可能只删除整个表。 我也不能删除任何列,因为外键列位于表的最后一个。 请给我一个解决方案。

如果这个问题是重复的,请给我正确答案的链接。

编辑:为了更多说明,我想使用插入命令添加行,问题是倒数第二列的类型为串行。 我的主要目标是在给出插入命令时不接触串行列

您只需要一个自定义的插入语句,

例如,

你的桌子看起来像这样,

CREATE TABLE "public"."ada" (
    
    "trandate" date, 
    "locname" text, 
    "totusers" integer, 
    "actusers" integer, 
    "datausage" integer, 
    "issues" integer, 
    "id" serial PRIMARY KEY, 
    "issuessolved" integer
);

并且插入语句可以写成

INSERT INTO "public"."ada" (
    "trandate"
    ,"locname"
    ,"totusers"
    ,"actusers"
    ,"datausage"
    ,"issues"
    ,"issuessolved"
    )
VALUES (
    < trandate
    ,date >
    ,< locname
    ,text >
    ,< totusers
    ,integer >
    ,< actusers
    ,integer >
    ,< datausage
    ,integer >
    ,< issues
    ,integer >
    ,< issuessolved
    ,integer >
    );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM