同学要写个trigger,稍微帮他研究了下
以下主要是个人猜想理解的
主要讲update
我们在创建trigger时,数据库会对创建了trigger的表进行事件监听。
当表中的一条记录发生update操作的时候:
- 数据库会在执行update之前,使用old来存储旧的记录。
- 执行update。
- update成功后,再使用new来存储(或指向)新的记录。
如此一来,我们就可以通过old.字段名来访问旧的记录,通过new.字段名来访问新的记录。old和new都特指update的表中的记录。
看到网上有人说update的时候,会生成两个表,一个是deleted一个是inserted,应该是对的。
trigger的实际应用好像挺少?好像一般都是通过应用程序来实现trigger的操作,感觉更简单和灵活。
更具体的原理,等有空的时候再研究。先稍微记录一下。