`

postgresql触发器old的使用

 
阅读更多

在insert语句中old的值是null,如果访问null.name会报错

ERROR:  record "old" is not assigned yet
DETAIL:  The tuple structure of a not-yet-assigned record is indeterminate.

 

可以用TG_OP变量判断当前是update还是insert

分享到:
评论

相关推荐

    数据库自动化的魔法:精通数据库触发器的使用

    不同的数据库系统(如 MySQL、SQL Server、PostgreSQL)对触发器的支持和语法略有不同。以下是 MySQL 中创建触发器的示例: ```sql DELIMITER $$ CREATE TRIGGER CheckAge BEFORE INSERT ON Customers FOR EACH ROW...

    PostgreSQL实用实例参考

    WHEN (OLD.age > NEW.age) EXECUTE FUNCTION raise_exception('Age cannot decrease'); ``` 此触发器将在尝试降低员工年龄时阻止更新,并抛出错误。 四、存储过程 存储过程是一组预编译的SQL语句,可以作为一个单元...

    计算机二级mysql数据库程序设计练习题(一).docx

    14. **INSERT触发器的临时表**:在MySQL中,INSERT触发器可以使用`NEW`和`OLD`这两个临时表,`NEW`代表新插入的行,`OLD`代表触发动作前的行。 15. **关于触发器的错误叙述**:在MySQL中,每个表每个事件(如`...

    常用数据库的自增字段创建方法汇总

    PostgreSQL 中可以通过 `SERIAL` 类型或者使用 `IDENTITY` 属性来创建自增字段。下面是一个使用 `SERIAL` 类型的例子: ```sql CREATE TABLE T1 ( id SERIAL NOT NULL ); ``` `SERIAL` 是一种特殊的数据类型,...

    MySQL入门很简单-学习笔记_20110913.pdf

    3. **触发器的使用**:触发器可以用来执行复杂的业务逻辑。 4. **删除触发器**:使用`DROP TRIGGER`命令。 #### 九、查询数据 1. **基本查询语句**:`SELECT column_name(s) FROM table_name;` 2. **单表查询**:...

    dbtrack_old:跟踪数据库(数据)更改,并带有查看还原导出跟踪信息的选项

    dbtrack 跟踪数据库(数据)更改,并带有查看/还原/导出跟踪信息的选项。... 当前支持的数据库是MySQL和PostgreSQL,它使用触发器和函数来跟踪数据更改。 请访问Wiki以获取更多信息: : 作者:Pavel [ ]

    mysql练习复习最佳帮手

    **9.3 触发器的使用** - 触发器可以用于实现复杂的数据完整性规则。 **9.4 删除触发器** - `DROP TRIGGER trigger_name;` #### 九、查询数据 **10.1 基本查询语句** - `SELECT * FROM table_name;` **10.2 单表...

    Postgres工具包

    11. **扩展功能**:可能还包含了对PostgreSQL特性的支持,如函数、存储过程、触发器、规则等。 在PostgresToolkit-master这个文件名中,"master"通常代表这是一个主分支或者完整版本的代码库,意味着包含了所有功能...

    MyGeneration

    MyGeneration 支持多种数据库,包括但不限于SQL Server、Oracle、MySQL、PostgreSQL等,使得它能够处理多种数据源的代码生成任务。它允许用户编写自己的模板,这些模板可以是简单的文本文件,也可以是复杂的脚本,...

    定期删除数据表里数据方法汇总

    PostgreSQL没有内置的作业调度器,但可以通过第三方工具如pgAgent或在Linux服务器上使用cron来实现定时任务。以下是在pgAgent中创建一个任务的简化流程: 1. 安装并配置pgAgent。 2. 创建一个新作业,指定作业步骤...

Global site tag (gtag.js) - Google Analytics