sql – 如何在Postgres中将表从public移动到其他模式
发布时间:2020-12-12 16:41:27 所属栏目:MsSql教程 来源:网络整理
导读:Postgres 9.1数据库在公共模式中包含表yksus1 .. ykssu9. pgAdmin显示了如下代码中的定义. 如何将这些表移动到firma1模式? firma1模式中的其他表格具有对这些表格主键的外键引用.对这些表的外键引用仅来自firma1模式中的表. 其中一些表包含数据. 如果表被移
Postgres 9.1数据库在公共模式中包含表yksus1 .. ykssu9. pgAdmin显示了如下代码中的定义.
如何将这些表移动到firma1模式? firma1模式中的其他表格具有对这些表格主键的外键引用.对这些表的外键引用仅来自firma1模式中的表. 其中一些表包含数据. 它看起来像主键序列已经在firma1模式,所以那些不应该移动. 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),osakond character(10),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(); 解决方法ALTER TABLE yksus1 SET SCHEMA firma1; 手册中的更多细节:http://www.postgresql.org/docs/current/static/sql-altertable.html
不知道触发功能,但是有一个等效的ALTER FUNCTION .. SET SCHEMA …以及. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |