procedure过程触发器trigger

【SQL】存储过程procedure && 触发器trigger 什么是存储过程? 面向对象中的函数:代码的集合,某一功能的模块 存储过程可以看成是SQL的一个函数,把一句或多句SQL语句封装在一个存储过程里,可以直接调用存储过程。 为什么使用它? 存储过程是数据库自己提供的,且存储过程执行效率比SQL语句要快很多, ... 阅读详情

存储过程

create or replace procedure a(j out int)
as
begin
j:=0;
for i in 1..100 loop
j:=j+i; 
end loop;
end;

 

set serveroutput on
declare
suma int;
begin
a(suma);
dbms_output.put_line(suma);
end;

 

事务

事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除。

 

oracle

sqlserver

 

触发器

触发器是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。


drop table super;
drop table sub;
create table super(bh int primary key,age int);
insert into super values(1,22);
insert into super 
values(2,23);
create table sub(id int primary key,sm char(30),bh int ,foreign key(bh) references super(bh));
insert into sub values(1,'os',2);
insert into sub values(2,'db',2);
insert into sub values(3,'db',1);
insert into sub values(4,'linux',1);

create or replace trigger tri_del after delete on super
for each row
begin
delete from sub where bh=:old.bh;
end;

 

--drop object
drop trigger mytri;
drop table student;
drop table borrowrecord;

--create table
create table student(studentid int,name char(20));
insert into student values (1,'abc');
insert into student values (1,'abc');
insert into student values (2,'abc');
insert into student values (3,'abc');

create table borrowrecord (borrowid int,studentid int);
insert into borrowrecord values (1,1);
insert into borrowrecord values (2,1);
insert into borrowrecord values (3,2);
insert into borrowrecord values (4,3);

--create trigger
■SqlServer
create trigger mytri on student for delete 
as
delete borrowrecord from borrowrecord br,deleted d where br.studentid=d.studentid

■Oracle
create trigger mytri after delete on student 
for each row 
begin
delete from borrowrecord br where br.studentid=:old.studentid;
end;


■Mysql5.0 
delimiter |
create trigger mytri after delete on student 
for each row
begin
delete from borrowrecord where borrowrecord.studentid=old.studentid;
end;
|

或
mysql> delimiter | 设定分隔符
mysql> create trigger beforeinsertuserinfo
-> before insert on userinfo
-> 
for each row
-> begin
-> insert into userinfolog values(now(),CONCAT(new.userid,new.username));
-> 
end;
-> |

mysql> delimiter ;
恢复;分隔符
mysql> show triggers;
或

create trigger mytri after delete on student 
for each row 
delete from 
borrowrecord where borrowrecord.studentid=old.studentid;

--test trigger
select * from student;
select * from borrowrecord;
delete from student where studentid=1;
select * from student;
select * from borrowrecord;


--显示触发器
mysql: SELECT trigger_name,trigger_schema FROM information_schema.TRIGGERS T; show triggers
oracle:
select trigger_name from user_triggers
sqlserver:
sp_helptrigger tablename

表序列,触发器

 

关联触发器

主外键关联

 

 

删除修改触发器

 

修改

 

删除

 

 

浅析MySQL 的 **触发器(Trigger)** 和 **存储过程(Stored Procedure)原理及优化建议 MySQL 的和是数据库中用于实现业务逻辑的重要机制,它们的原理和使用方式不同,适用于不同的场景。 阅读详情

相关推荐

MySQL中创建procedure,function,trigger

这个是本人在学习MySQL数据库时的一个小的总结,希望对大家有用。主要是关于如何在MySQL中创建procedure、function、trigger.

trigger和procedure示例

只是一个简单的示例,下面的grigger和procedure功能差不多,在t表插入记录,同时在t1表的记录+1,只是procedure有返回值. 功能虽然很简单,但是大家稍微修改一下,功能就很强大了。 trigger delimiter//create trigger up after insert on tforeach rowBEGI...

weixin_34054931的博客 215

CodeBlocks如何将英文环境改为中文

一、下载汉化包(链接如下) 链接:https://pan.baidu.com/s/166U9WGPbJXu2hyD7q9EiJQ 提取码:2333 二、选择路径 将汉化包中的文件(CodeBlocks.mo、zh_CN.mo、zh_CN.po)放到CodeBlocks安装路径下的​​​​​​CodeBlocks/share/CodeBlocks/locale/zh_CN文件夹中,路径中的文件夹没有就新建。 注:此处需严格按照要求来,切勿自定义文件夹名 三、内部调试 打开CodeBlocks,..

云隐雾匿的博客 2万+

触发器及存储过程(procedure)

存储过程(procedure): 创建一个名为p1的存储过程,功能是查找成绩表中成绩为空的学生学号,姓名;执行P1。 creat procedure p1 as select Sno,Sname from Student where Sno in ( select Sno from SC where grade is null ) exec p1//exec 执行一个存储过程 创建...

九霄云客的博客 1714

Windows下CMake编译VTK

选择项目INSTALL,生成该项目,得到vtk在Debug模式下的lib和dll文件,在文件夹中可看见,已得到debug模式下lib库与dll库。,把Value值设置为最后在vtk_sln中生成include、dll、lib的位置。在上面点击Configure后,红色区域没有了。选择自己vs编译平台的版本信息,我这边已经设置好了没有这个设置了,借用参考博客的图片。设置完后,点击左下角"Configure",然后等待Configure。,把搜索结果的Value勾选上。在search中搜索。

weixin_74239923的博客 842

大模型-高通平台性能测试示例-2

在QNN中,可以使用(genis-t2t-run)和这两个工具来进行推理的性能分析。支持在QNX操作系统或Android操作系统上进行性能分析。:提供基本的性能数据,如运行时间、资源消耗等。:提供更详细的性能数据,可能包括各个操作的执行时间、资源使用情况等。:是指在性能分析的同时进行代码质量检查,以发现潜在的问题。:是指跟踪和分析神经网络中各个操作的性能,以优化网络结构或参数。

点滴的岁月 1493

mysql存储过程procedure 触发器trigger 游标cusor 控制语句(条件,循环)

什么是mysql存储例程? 存储例程是存储在数据库服务器中的一组sql语句,通过在查询中调用一个指定的名称来执行这些sql语句命令. 为什么要使用mysql存储过程? 我们都知道应用程序分为两种,一种是基于web,一种是基于桌面,他们都和数据库进行交互来完成数据的存取工作。假设现在有一种应用程序包含了这两 种,现在要修改其中的一个查询sql语句,那么我们可能要同时修改他们中对应的查询...

Meiko记录 1192

Fiddler抓包实战:5分钟搞定微信公众号历史消息接口分析(附完整Python代码)

本文详细介绍了如何使用Fiddler抓包工具逆向分析微信公众号历史消息接口,并提供完整的Python代码实现。从环境准备、动态参数捕获到商业级采集系统架构设计,全面解析了突破官方接口限制的技术方案,帮助开发者高效获取公众号文章数据。

tree8的博客 329

Oracle中存储器(procedure)和触发器(trigger)的小例子

--sql window中写存储过程(本例对dept_copy表的操作)  create or replace procedure p_update_dept(    l_remarker in number,--0增,1删,2改    l_deptno in number,    l_dname in varchar

liutong123987的专栏 1182

机器人中的数值优化(十二)——带约束优化问题简介、LP线性规划

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 3851

单片机应用案例:ESP32 搭配 BH1750 光强传感器和 Web 服务器

在该应用案例中,我们将使用 ESP32 开发板作为主控制器,BH1750 光强传感器用于采集环境光强度数据,并通过 Web 服务器展示采集到的数据。步骤一:购买材料步骤二:连接硬件步骤三:编写代码我们将使用 Arduino IDE 编写代码,以下是主要代码:// WiFi 设置const char* ssid = “你的 WiFi 名称”;const char* password = “密码”;// Web 服务器实例// BH1750 实例// 获取当前光强度数据。

RlDart的博客 813

存储过程 触发器

在学习触发器以及存储过程中时遇到了一些典型的例题,在这里和大家分享一下。 码字不易,点个关注给个赞吧 1. 定义过程,根据雇员编号找到雇员姓名及工资。(10分) 代码: create or replace procedure pro_emp2(v_empno in emp.empno%type) is v_ename emp.ename%type; begin selec...

pengxiang1998的博客 8356

PCL 点云拟合 最小二乘法拟合平面

在点云处理领域,最小二乘法(Least Squares)拟合是一种常用的数学方法,用于估计数据点的最佳拟合曲线或平面。平面拟合广泛应用于点云数据处理中的地面检测、物体表面分析等任务。 本文将介绍如何使用PCL库实现基于最小二乘法的平面拟合算法,通过拟合点云数据中的平面,来提取出数据的平面部分。

纵马踏花向自由 1026

mysql程序过程语言procedure、触发器trigger

【代码】mysql程序过程语言procedure、触发器trigger。

qiao2458的博客 241

FPGA实现LVDS接口(1)--IBUFDS原语、OBUFDS原语和IOBUFDS原语的介绍及使用(仿真/源码)

通过本文您会学到:Xinlix的源语IBUFDS、OBUFDS和IOBUFDS是什么?

孤独的单刀 2万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

00201 数据库基础:函数、触发器TRIGGER和存储过程PROCEDURE

/本博文语法基于SQL SERVER 2008自建函数FUNCTION用户自己写的一些SQL代码的组合,从而实现特定的功能 创建函数的语法:CREATE FUNCTION function_name (arg1 type1, arg2 type2, arg2 type3) RETURNS ...大多数情况下,运行函数会返回一个表,该表可以作为select语句的from子句的

shengxiaobufu的博客 687

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

oracle 游标,函数 function , 存储过程 PROCEDURE , 触发器 Trigger

1、 ORACLE函数定义 function uf_execute_sql(as_where varchar2, as_sql varchar2) return varchar2 is v_ret varchar2(30); begin execute immediate as_sql into v_ret using as_where; //using 后的参数为as_sql中的参数

jwlsky 2477

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

mysql( 表的复制 存储过程procedure 触发器 Trigger 视图 View DCL )

表的复制 语法: create table 表名 as select * from 另一张表 where 1=1; -- 创建一张表会把另一张表中的字段和对应的数据全部复制过去 如果只要字段,不要数据 create table 表名 as select * from 另一张表 where 1=2; 如果只要个别字段 create table 表名 as select 表名.字段名,表名.字段名...

Liyuehahaha的博客 706

MySQL补充笔记:存储过程procedure,变量Variables,触发器Trigger,视图View

存储过程procedure 存储过程是数据库中的一个对象,存储在服务端,用来封装多条SQL语句且带有逻辑性,可以实现一个功能,由 于他在创建时,就已经对SQL语句进行了编译,所以执行效率高,而且可以重复调用,类似于我们Java中的方法。 语法: DELIMITER $$ CREATE PROCEDURE `performance_schema`.`myTestPro`() BEGIN END$$ DELIMITER ; 注意:创建存储过程中需要管理员分配权限 补充:delimit

骑着蜗牛行天下 470

oracle 包, 游标, 函数 function , 存储过程 PROCEDURE , 触发器 Trigger

1、 ORACLE函数定义function uf_execute_sql(as_where varchar2, as_sql varchar2) return varchar2 isv_ret varchar2(30);beginexecute immediate as_sqlinto v_retusing as_where; //using 后的参数为as_sql中的参数,若有多个依次...

Jsky 259

序列、触发器和存储过程三者之间有啥关系

存储过程相当于打包好的sql语法,可以包含复杂的sql操作,在程序调用时只要执行该存储过程,一句话就可以完成复杂的数据库操作. 触发器是也是打包好的sql语法,是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行  另外:触发器相对一般的存储过程也多了一些在代码编写方面的不同,比如说CREATE TRIGGER 必

fengxinxj的博客 1535

存储过程(Stoage Procedure)和MySQL中的触发器(trigger)

一.存储过程(Stoage Procedure) declare 存储过程是一组为了完成特定功能的SQL语句集, 存储在数据库中,用户通过指定存储过程名字并给定参数(如果该存储过程带有参数)来调用执行它 优点:---增强SQL 语句的功能和灵活性-----标准组件式编程-----较快的执行速度-----减少网络流量-----作为一种安全机制来充分利用 变量赋值 (语法) set...

Feng0811xin的博客 485

Oracle 过程(Procedure)、函数(Function)、包(Package)、触发器(Trigger)

Oracle 过程(Procedure)、函数(Function)、包(Package)、触发器(Trigger) Oracle阅读160 评论0 字号:大中小 2009-12-07 23:20:21 PL/SQL程序块可背独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这些存储的PL/SQL程序块。ORACLE提供了四种类型的可存储的程序: 过...

weixin_34168700的博客 327
上一篇: NAT网络连接
下一篇: 好记性不如烂笔头The palest ink is better than the best memory
caststudy
博客等级 码龄19年 181粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值