触发器

数据库的触发器简单理解

旧巷老猫 提交于 2020-01-19 16:23:23
首先,需要至少两张表,否则就不能体现触发器的功能 说道功能,个人认为就是当一张表发生改变,可能是字段有改变,或者表结构改变(?没试过), 另一张表会发生对应的变化。例如:一张表的某一个字段发生改变,另外一张表的某个字段同时也发生变化,(类似打喷嚏顺便闭眼?) 下面举个小例子: 建立一张学生表,建立一个班级表 create table Student( studentID int identity(1,1) primary key not null, studentName varchar(50) ) create table Class( classID int identity(1,1) primary key not null, className varchar(50), studentID int not null ) 假如我是老师,有一天我突然想改变一个学生的ID,那么在class表里对应的studentID也得变 那么对应的触发器应该是以下: Create Trigger Trigger_Student   On Student --在Student表中创建触发器   for Update --为什么事件触发 (为更新)   As --事件触发后所要做的事情   if Update(StudentID)   begin Update Class --想要触发器作用的表

PostgreSQL简介

别等时光非礼了梦想. 提交于 2020-01-18 23:14:51
PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它在其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server之外,为用户又提供了一种选择。 PostgreSQL 不寻常的名字导致一些读者停下来尝试拼读它,特别是那些把SQL拼读为"sequel"的人。PostgreSQL 开发者把它拼读为 "post-gress-Q-L"。(Audio sample,5.6k MP3)。它也经常被简略唸为 "postgres"。 历史 PostgreSQL 经历了长时间的演变,开始于在 UC Berkeley 的 Ingres 计划。这个计划的领导者 Michael Stonebraker 在1982年离开 Berkeley 去商业化 Ingres,但是最后还是返回了学术界。在1985年返回 Berkeley 之后,Stonebraker 开始了 post-Ingres 计划来致力于在 1980 年代早期变得日益清楚的、当代数据库系统的问题。Postgres 和 Ingres 的代码库开始(并保持)完全分离了。 结果的计划叫 Postgres ,目标是介入增加对类型的完全支持所需要的最小数目的特征

触发器和存储过程简述

只愿长相守 提交于 2020-01-17 15:32:34
1 什么是触发器? 触发器就是某个表发生一个事件(增删改操作),自动执行预先编译好的sql语句,执行相关操作。触发器事件和sql语句是原子性的,保证了数据的完整性。 2 create trigger 触发器名称 before /after insert/update/delete on 表名 for each row(每行变动都触发) begin Sql语句 end; delimiter ;--此处必须有空格,表示语句的结束 3 new 代表触发器执行添加或者更新时的被操作的记录 4 old 代表触发器执行删除或者更新时的被操作的记录 5 什么是存储过程? 存储过程类似于函数,但是存储过程没有返回值,用call调用存储过程。 6 触发器和存储过程的比较? 触发器是自动调用,存储过程需要手动调用。 触发器适用于简单的sql事件, 存储过程适用于复杂的sql事件,存储过程可以在java中直接调用。 来源: https://www.cnblogs.com/fengfeng21/p/12205688.html

u3d碰撞器和触发器

我只是一个虾纸丫 提交于 2020-01-17 07:49:20
碰撞器 造成物理碰撞,执行碰撞方法 1、碰撞的双方必须都具有碰撞器Collider 2、至少运动的一方必须具有刚体 3、双方不能勾选is trigger 4、双方不可同时勾选运动学 5、如果运动的一方没有刚体,当他去碰撞静止的刚体相当于没有撞到 碰撞器方法 1、oncolliderEnter 碰撞瞬间执行一次 2、oncolliderstay 碰撞时一直触发 3、oncolliderexit 物体分开触发一次 触发器 不造成物理碰撞,但是有触发方法 1、双方必须都具有碰撞器 2、运动的一方必须具有刚体 3、至少一方勾选is trigger 触发器方法 1、ontriggerEnter 物体接触瞬间执行一次 2、ontriggerstay 物体接触中一直触发 3、ontriggerexit 物理分开瞬间触发一次 来源: CSDN 作者: 追梦人2020 链接: https://blog.csdn.net/qq_30087879/article/details/103815496

单稳态触发器

穿精又带淫゛_ 提交于 2020-01-17 03:29:47
工作原理 (1)输入是低电平,由于vo是低电平,则G1门的输入为两个0,电路处于稳定状态。 (2)外加触发信号,当输入电平高于G1门的阈值电压,电路有以下过程:v1升高导致vo1减小,导致v12减小,导致vo升高,vo1进一步减小。会导致瞬间G1打开,vo1变低电平。由于电容器两端电压不能突变,v12会跟着瞬间变低,G2截止,vo变高。此时就算输入变低,由于G1另一端的电压为高电平,触发器能暂时维持状态,但是电容会被VDD充电,很快,v12又会被拉到高电位,状态会还原。 故把这种触发器叫做单稳态触发器。 来源: CSDN 作者: 达能饼干 链接: https://blog.csdn.net/weixin_43093575/article/details/104009776

MySQL --- 触发器

二次信任 提交于 2020-01-16 20:45:28
触发器的定义 触发器是用户定义在关系表上的一类由事件驱动的特殊过程 。一旦定义,触发器将被保存在数据库服务器里。任何用户对表的增删改操作均由服务器自动激活相应的触发器。触发器类似于约束,但是比约束更加灵活,可以实施更加复杂的检查和操作,具有更精细和更强大的数据控制能力。 1.创建触发器 2.修改触发器 3.禁用启用触发器 4.删除触发器 来源: CSDN 作者: 陳Huid 链接: https://blog.csdn.net/C_huid/article/details/103993108

sql之T-SQL

此生再无相见时 提交于 2020-01-16 16:17:38
下面就T-SQL的几个方面来分别讲解一下。 1、变量 要动态的写sql语句,就不能没有变量。 声明变量并赋值: 1 declare @i as int;--定义一个 int 类型的 变量 (as可以省略) 2 print @i;--这注意:没有赋值之前,程序不会报错,而且输出一个 空 3 set @i=3; 4 print @i; 在sql server 2008之后就可以对变量 在声明的同时进行赋值 1 declare @a int=3; 2 print @a; 在变量的使用过程中,一定要注意nvarcahr 和nchar的区别。 1 declare @s nvarchar(20); 2 set @s='Hello'; 3 set @s=@s+' World!'; 4 print @s;--输出的是 Hello World! 5 6 declare @s2 nchar(20); 7 set @s2='Hello'; 8 set @s2=@s2+' World!'; 9 print @s2;--输出的是 Hello。 为什么使用nchar却是输出的 Hello,因为:nchar是固定长度,即使长度没有达到最大,但是其余长度用 空来代替了,所以 相当于是满的,所以在进行字符串的相加 是不会起作用的。 在查询中赋值: 1 declare @now datetime; 2 select

Quartz任务调度Job有无状态

感情迁移 提交于 2020-01-16 15:56:15
有状态的job和无状态的job @PersistJobDataAfterExecution注解的使用 有状态的job可以理解为多次Job调用期间可以持有一些状态信息,这些状态信息存储在JobDataMap中,而默认的无状态job每次调用时都会创建一个新的jobDataMap 添加count的setter和getter方法 public Integer getCount ( ) { return count ; } public void setCount ( Integer count ) { this . count = count ; } public Integer getCount ( ) { return count ; } 在execute方法中添加 public void execute ( JobExecutionContext jobExecutionContext ) throws JobExecutionException { ++ count ; //输出count的值 System . out . println ( "count的值:" + count ) ; //将count的值存放到jobDataMap中 jobExecutionContext . getJobDetail ( ) . getJobDataMap ( ) . put ( "count

oracle中设置主键

房东的猫 提交于 2020-01-16 01:25:40
1.创建表 1.创建表 create table "c_user"( "id" number primary key, "username" varchar(255), "password" varchar(255), "p_name" varchar(255), "p_number" varchar(255), "p_date" varchar(255), "p_referenceNumber" varchar(255), "tech_area" varchar(255), "platformLevel" varchar(255), "address" varchar(255), "permission" int(10), "type1" varchar(255), "union1" int(10), "BTHconStruction" int(10), "service1" varchar(255), "service2" varchar(255), "service3" varchar(255), "course1" varchar(255), "course2" varchar(255), "course3" varchar(255), "relyName" varchar(255), "credit" varchar(255), "relylegalName"