`

postgreSql 利用触发器创建动态表

阅读更多

在postgresql 中如果在程序运行中需要根据插入数据条件而生成新的表,则可以利用触发器创建动态表。

这在数据库的表分区中可以利用到。

具体sql语句为:
--创建父表   
CREATE TABLE test1(   
  name text,   
  id integer   
);   
  
--创建触发器函数   
CREATE FUNCTION testTriger() RETURNS trigger AS $$   
BEGIN   
  IF NEW.id>10 THEN    
   CREATE TABLE test_2( --这里的名字可以变   
    )INHERITS (test1);  --继承test1表   
  END IF;   
return NEW;   
END;   
$$LANGUAGE plpgsql;   
  
---为父表创建行级触发器   
CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON test1  FOR EACH ROW EXECUTE PROCEDURE testTriger();   
  
那么这样如果在父表中id号大于10后就会创建一张子表test_2   
  
  
注意:   
如果没有定义plpgsql language的话,可以定义为:   
CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler   
LANCOMPILER 'PL/pgSQL'   

分享到:
评论

相关推荐

    PostgreSQL分区表(partitioning)应用实例详解

    在本实例中,我们学习了如何创建一个基于时间的分区表,包括创建父表、子表以及定义触发器来自动路由插入操作。同时,通过创建索引和维护策略,可以进一步优化查询性能和系统资源利用。在实际应用中,根据具体业务...

    许中清-PostgreSQL表分区实践

    许中清在2014年PostgreSQL中国大会上分享了关于PostgreSQL的原生表分区方案,这是数据库管理领域中一个非常重要的知识点,尤其适用于大型数据库系统的维护和优化。表分区是一种数据库架构优化技术,它允许将一个大表...

    postgresql-12-A4_postgresql手册_

    3. 触发器与事件:利用触发器实现数据的自动更新和验证,或者用事件调度器安排定时任务。 四、性能优化 1. 索引优化:理解B-Tree、GiST、SP-GiST、GIN和BRIN等各种索引类型,以及何时使用它们来提升查询性能。 2....

    postgresql 按小时分表(含触发器)的实现方式

    本文介绍的是一种在PostgreSQL中实现按小时分表的方法,利用触发器(triggers)来自动化数据插入过程。首先,我们需要创建一个函数,这个函数会在数据插入到主表(parent table)之前被触发执行。在这个例子中,函数...

    PostgreSQL实用实例参考

    在PostgreSQL中,创建表涉及到定义列名、数据类型以及约束条件。例如: ```sql CREATE TABLE employees ( id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT CHECK (age > 0), department VARCHAR(30)...

    PostgreSQL实战

    书中将详细介绍如何创建数据库、表,以及如何编写SQL语句进行数据操作。 接着,书中的章节会深入讲解PostgreSQL的数据类型。PostgreSQL提供了丰富的内置数据类型,包括数值类型、字符串类型、日期时间类型、二进制...

    postgresql

    同时,PostgreSQL支持触发器、存储过程、用户自定义函数(UDF)等高级特性,使得数据库能够执行复杂的业务逻辑。 此外,PostgreSQL还具有高度的可扩展性,支持分区、复制和集群配置,可以实现负载均衡和高可用性。...

    postgresql-9.1.3-1-windows-x64

    安装完成后,用户可以通过pgAdmin或其他管理工具与PostgreSQL交互,进行数据表创建、数据导入导出、备份恢复等操作。同时,由于PostgreSQL是开源软件,用户可以利用庞大的社区资源和文档来解决问题,进一步提升...

    postgresql中文手册.zip

    **PostgreSQL中文手册** PostgreSQL,简称PG,是一款开源的对象关系型数据库管理系统(ORM DBMS),因其强大、稳定和...通过深入阅读和实践,你可以更好地利用PostgreSQL解决实际问题,构建高效、可靠的数据存储系统。

    -赵飞祥(最新版)--斗鱼 PostgreSQL分区表实践与思考_zhaofx_v1.5_20191122.pdf

    不同版本中分区表的实现各有不同,例如10版本开始通过继承的方式来创建分区表,9.5之前的版本则需要主表和分区表分别创建,并通过触发器来维护数据关联。 6. 分区表在生产环境的实现:包括分区表的定义、表名、字段...

    PostgreSQL从入门到精通

    通过实例和实践环节,读者将学习如何插入、更新数据,执行复杂的查询,以及利用存储过程和触发器增强数据库功能。这部分的学习是数据库无关的,因此,即使未来使用其他数据库系统,这些知识也能发挥作用。同时,本...

    postgresql手册 中文版+英文版

    PostgreSQL支持许多高级特性,比如事务处理、视图、存储过程、触发器和索引。手册中应该会有详细解释,如何利用这些特性来确保数据一致性,提高查询性能,以及实现复杂的业务逻辑。例如,事务处理保证了数据库操作的...

    PostgreSQL必备参考手册.rar

    - 触发器:创建和管理用于自动化业务逻辑的触发器。 - 视图:创建虚拟表以简化查询或保护数据。 - 游标:处理大量数据时的迭代工具。 4. **性能优化** - 索引:理解B-Tree、GiST、SP-GiST、GIN、BRIN等各种索引...

    POSTGRESQL7数据库开发指南

    在PostgreSQL7中,可以使用CREATE TABLE语句创建表,ALTER TABLE用于修改表结构,DROP TABLE则用于删除表。 **5. 触发器与存储过程** 触发器是自动执行的程序,常用于实现业务规则。存储过程是一组可重复使用的SQL...

    PostgreSQL9.6中文离线手册 pdf版

    **PostgreSQL 9.6 中文离线手册** PostgreSQL是一种功能强大的开源关系数据库管理系统,以其高度的稳定性和丰富的功能而受到全球...通过深入阅读和实践,可以更好地利用PostgreSQL构建高效、可靠的数据存储系统。

    PostgreSQL13.1-CN-v1.0.pdf

    用户可以通过阅读手册了解如何创建数据库、管理用户、设置权限、编写 SQL 查询、进行数据导入导出,以及如何利用 PostgreSQL 的高级特性,如触发器、存储过程、视图等。 如果在使用中文手册过程中发现错误或有改进...

    postgresql实例参考(中文高清PDF)

    3. 表操作:创建、修改、删除表,以及索引的使用和管理。 4. SQL语言:SELECT语句的使用,JOIN操作,聚合函数,子查询,窗口函数等。 5. 并发控制:理解MVCC工作原理,处理死锁,事务隔离级别。 6. 复制与备份:主从...

    postgresql8中文doc(pdf版)

    这包括创建数据库、表,以及执行查询、更新和删除等操作。 2. **ACID 属性**:PostgreSQL 实现了事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),确保了数据的一致...

    postgresql12文档.zip

    文档涵盖了管理数据库对象的各个方面,如创建、修改和删除表、索引、视图、序列、函数、触发器和类型。这包括对权限和角色的管理,以实现精细的数据访问控制。 **4. 并行查询** PostgreSQL 12 引入了更先进的并行...

    postgresql 8.2.3 中文文档.CHM

    3. **表的创建与修改**:使用`CREATE TABLE`来定义表结构,`ALTER TABLE`来修改已有表的结构。 4. **数据插入与查询**:`INSERT INTO`将数据插入表中,`SELECT`语句用于查询数据。 5. **更新与删除数据**:`UPDATE`...

Global site tag (gtag.js) - Google Analytics