当前位置: 首页 > 知识库问答 >
问题:

如何在Postgres中将表从公共模式移动到其他模式

桂德义
2023-03-14

Postgres 9.1数据库包含表yksus1。。公共模式中的ykssu9。pgAdmin在下面的代码中显示了这些定义。如何将这些表移动到firma1模式?

firma1模式中的其他表具有对这些表的外键引用。对这些表的外键引用仅来自firma1模式中的表。

其中一些表包含数据。如果表移动到firma1模式,外键引用也应更新到firma1。YKSUS表格。无法更改表结构。

看起来主键序列已经在firma1模式中,所以不应该移动它们。x86_64-unknown-linux-gnu上的版本字符串PostgreSQL 9.1.2,由gcc-4.4编译。实数(Debian 4.4.5-8)4.4.5,64位

CREATE TABLE yksus1
(
  yksus character(10) NOT NULL DEFAULT ((nextval('firma1.yksus1_yksus_seq'::regclass))::text || '_'::text),
  veebis ebool,
  nimetus character(70),
  "timestamp" character(14) DEFAULT to_char(now(), 'YYYYMMDDHH24MISS'::text),
  username character(10) DEFAULT "current_user"(),
  klient character(40),
  superinden character(20),
  telefon character(10),
  aadress character(50),
  tlnr character(15),
  rus character(60),
  CONSTRAINT yksus1_pkey PRIMARY KEY (yksus)
);
ALTER TABLE yksus1
  OWNER TO mydb_owner;

CREATE TRIGGER yksus1_trig
  BEFORE INSERT OR UPDATE OR DELETE
  ON yksus1
  FOR EACH STATEMENT
  EXECUTE PROCEDURE setlastchange();

其他表格类似:

CREATE TABLE yksus2
(
  yksus character(10) NOT NULL DEFAULT ((nextval('firma1.yksus2_yksus_seq'::regclass))::text || '_'::text),
  nimetus character(70),
  "timestamp" character(14) DEFAULT to_char(now(), 'YYYYMMDDHH24MISS'::text),
  osakond character(10),
  username character(10) DEFAULT "current_user"(),
  klient character(40),
  superinden character(20),
  telefon character(10),
  aadress character(50),
  tlnr character(15),
  rus character(60),
  CONSTRAINT yksus2_pkey PRIMARY KEY (yksus),
  CONSTRAINT yksus2_osakond_fkey FOREIGN KEY (osakond)
      REFERENCES yksus2 (yksus) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE
);
ALTER TABLE yksus2
  OWNER TO mydb_owner;

CREATE TRIGGER yksus2_trig
  BEFORE INSERT OR UPDATE OR DELETE
  ON yksus2
  FOR EACH STATEMENT
  EXECUTE PROCEDURE setlastchange();

共有1个答案

雷献
2023-03-14
ALTER TABLE yksus1
    SET SCHEMA firma1;

手册中的更多详细信息:http://www.postgresql.org/docs/current/static/sql-altertable.html

表列拥有的相关索引、约束和序列也会被移动

虽然不确定触发器函数,但有一个等价的ALTER函数。。设置架构

 类似资料:
  • 我需要公开一些在REST API方法中不直接使用的模型。 对于springfox,我使用Docket的方法以编程方式将模型添加到规范中: 如何使用springdoc? 我已经创建了一个带有dummy参数的dummy操作,其中包括所有必需的模型。但我觉得这种方法还有改进的空间。

  • 如何使用django租户模式将数据从共享模式迁移到多租户模式? 我们有一个saas,最初没有使用django租户模式,而是使用共享数据库、共享模式的方法。我们现在发现了django租户模式,并认为这是正确的选择。 现在的问题是如何将数据从单一的模式迁移到独立的租户模式。 文档说明如下: 注意:如果这是您第一次运行此命令,您的数据库应该是空的。 在我现有的应用程序中,我有一个租户表,所有其他模型都有

  • 我已经通过使用PHP从SQL获取数据创建了一个动态表。每一行都有一个链接到模态的编辑按钮。我想把值从表传递到模态,这样我就可以编辑它了。 我已经尝试过循环槽表行,并能够获得不同列的值。但是,每次单击任何编辑按钮时,只有一行的最后一个被传递给Modal上的输入。 这是我的标记:Modal 表 脚本 这是输出输出 当我试图将值打印到控制台时。控制台.日志

  • 我在用一个VBA例程复制 源表:命名范围(多个“选择”) 下面是VBA代码部分。

  • 问题内容: 我有这个bean 我想序列化为 (或作为json) 我应该如何做,最好使用jaxb注释? 我正在使用运动衫,但答案不必特定于它。 问题答案: 接下来呢? 使用EclipseLink JAXB(MOXy),您可以执行以下操作。注意:我是MOXy技术负责人。 测试 领域 SomeValueAdapter 字段适配器 AdaptedField 演示版 导入java.io.File; inpu

  • 问题内容: 我已经在工作,但是当我尝试从其他模块调用它时,是否会不确定? app.js Consumer.js 问题答案: 由于app.js通常是应用程序中的主要初始化模块,因此通常会同时初始化Web服务器和socket.io并加载应用程序所需的其他内容。 因此,与其他模块共享的一种典型方法是将它们传递给该模块的构造函数中的其他模块。那会像这样工作: 然后,在consumer.js中: 或者,如果