postgresql 中关于触发器的笔记
来源:互联网 发布:卖家做淘宝客怎么玩 编辑:程序博客网 时间:2024/05/17 03:56
设计好了简单的微博的数据库的ER图
然后建表的时候就用pgadmin建了,很简单,然后看到如果要完整的实现数据库,其实要用到触发器。
语法:
1.创建触发器函数:
CREATE OR REPLACE FUNCTION 函数() RETURNS TRIGGER AS $body$ BEGIN 要执行的语句 RETURN NEW/OLD; END; $body$ LANGUAGE plpgsql;
2.触发器部分:
CREATE TRIGGER trigger_name
AFTER INSERT
ON table_name
FOR EACH ROW
EXECUTE PROCEDURE 函数()
虽然看起来很简单,但是用起来一开始还是很懵逼,但是只要搞清楚两点就很容易操作了:
1、NEW表示是你插入的数据,
比如:当你在user_follow表中插入了一行数据(表示谁关注了谁这件事)我们要在user表中更新一下某个user的follow_number这一值,NEW.user_follow_id 表示你插入的那行的user_follow_id这一列的值。
因为我们要用这个值去user表中找到user的id。所以这个时候得用NEW,一般可以说NEW用在insert或update的时候。
2.相反,OLD是你插入数据前表里已经存在的数据。
比如:当你在user_follow表中删除了一行数据(表示谁取消关注了谁这件事),user的关注的人数当然也得减少一个。这个时候当我们做删除操作的时候,我们得用删除的这一行中的user_id去user表中找id对吧~
所以,我们这个时候用的是以前的表里已经有的内容
,用OLD.xxx来表示就行了。
3.FOR EACH ROW很重要,虽然我现在不太明白这个是什么意思,但是我也懒的知道,反正写上就行了,不要从字面上翻译的理解。因为如果不写的话在执行操作的时候会有莫名的错误。
目前就先记录这么多。啦啦
- postgresql 中关于触发器的笔记
- postgresql 触发器的操作
- 关于postgresql自定义函数和触发器的一些问题
- jdbc中关于postgresql schema的配置
- PostgreSQL中关于时间计算的问题
- PostgreSQL触发器
- PostgreSQL触发器
- postgresql触发器
- PostgreSQL触发器
- postgresql 触发器
- postgresql 触发器
- postgresql触发器
- postgreSQL触发器
- PostgreSQL触发器
- postgresql触发器
- 关于SQLServer2005的学习笔记——系统触发器
- 关于碰撞器和触发器的小笔记
- 关于PostgreSQL的字符串
- 第一次来博客好激动
- 621. Task Scheduler(任务行程表)
- Java解析excel操作
- 研究僧基础——Python从零开始
- wav 文件按起止时间切割
- postgresql 中关于触发器的笔记
- 我的秋招之路
- wait,notify,synchronized一些闲谈
- 对PDO的封装
- javaee异常解决
- 【Leetcode-Medium-583】Delete Operation for Two Strings
- ROM、RAM、Flash的区别
- Andrew Ng's deeplearning Course1Week2 Practice Questions(练习题)
- Python