postgres存储过程(二)

先附上代码。

CREATE SEQUENCE os_template_id_seq;
CREATE TABLE os_template (
	id integer NOT NULL DEFAULT nextval('os_template_id_seq'::regclass),
	name varchar(30) NOT NULL DEFAULT '',
	PRIMARY KEY (id)
) WITHOUT OIDS ;

CREATE TABLE os_a (
	LIKE os_template INCLUDING ALL
) INHERITS (os_template) 
WITHOUT OIDS ;

CREATE TABLE os_b (
	LIKE os_template INCLUDING ALL
) INHERITS (os_template) 
WITHOUT OIDS ;

CREATE TABLE os_c (
	LIKE os_template INCLUDING ALL
) INHERITS (os_template) 
WITHOUT OIDS ;

CREATE TABLE os_d (
	LIKE os_template INCLUDING ALL
) INHERITS (os_template) 
WITHOUT OIDS ;


  1.  创建父表 os_template, 然后创建子表 os_a...os_d, 子表通过关键字LIKE创建与源字段相同的新表, 通过关键字INHERITS实现继承父表的特性。

  2. 实际生产环境,程序逻辑中,如果只是通过调用os_template来增删查改,效率会很慢;可以尝试不使用 INHERITS ,只是做表分区操作,通过程序逻辑来判断针对某个子表进行增删查改, 这样便于数据维护,效率上也会有很大提升。


你可能感兴趣的:(分区,like,postgres,inherits)