当前位置:首页 » 存储配置 » 存储过程和触发器实验

存储过程和触发器实验

发布时间: 2022-08-12 23:04:20

存储过程和触发器的区别和联系。

我的理解:主要是使用场合不同,还有就是触发器中不能使用commit(这个应该是约定而不是规定)
存储过程相当于打包好的sql语法,可以包含复杂的sql操作,在程序调用时只要执行该存储过程,一句话就可以完成复杂的数据库操作.
触发器是也是打包好的sql语法,是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行
另外:触发器相对一般的存储过程也多了一些在代码编写方面的不同,比如说create
trigger
必须是批处理中的第一条语句,并且只能应用到一个表中等等.具体的可以看一下触发器的说明;http://ke..com/view/1189954.htm

Ⅱ 存储过程和触发器

PROCEDURE
p_book1
PROCEDURE p_book2
书名='大学英语'
EXEC p_book2
图书编号=@x
'001105'
varchar(20)
书籍表 where 书名=@c1
EXEC p_book4 '大学语文'

Ⅲ 存储过程与触发器的区别

触发器与存储过程非常相似,触发器也是SQL语句集,两者唯一的区别是触发器不能用EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发(激活)执行。触发器是在一个修改了指定表中的数据时执行的存储过程。通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合这些SQL语句所定义的规则。

Ⅳ 存储过程与触发器的区别和联系

我的理解:主要是使用场合不同,还有就是触发器中不能使用commit(这个应该是约定而不是规定)
存储过程相当于打包好的sql语法,可以包含复杂的sql操作,在程序调用时只要执行该存储过程,一句话就可以完成复杂的数据库操作.

Ⅳ 如何测试mysql触发器和存储过程

1.
为了测试触发器和存储过程,首先建立一张简单的表:
复制代码
代码如下:
CREATE
TABLE
`airuser`
(
`userId`
int(11)
NOT
NULL
AUTO_INCREMENT,
`username`
varchar(128)
NOT
NULL,
PRIMARY
KEY
(`userId`)
)ENGINE=InnoDB
DEFAULT
CHARSET=utf8
2.
为该表的插入操作,创建一张记录表:
复制代码
代码如下:
CREATE
TABLE
`airuser_record`
(
`id`
int(11)
NOT
NULL
AUTO_INCREMENT,
`username`
varchar(45)
DEFAULT
NULL,
`edittime`
timestamp
NULL
DEFAULT
NULL,
`edittype`
varchar(45)
DEFAULT
NULL,
PRIMARY
KEY
(`id`)
)
ENGINE=InnoDB
DEFAULT
CHARSET=utf8
3.
编写一个插入操作的触发器:
复制代码
代码如下:
DROP
TRIGGER
insert_trigger;
delimiter
|
CREATE
TRIGGER
insert_trigger
BEFORE
INSERT
ON
airuser
FOR
EACH
ROW
BEGIN
INSERT
INTO
airuser_record
SET
username
=
NEW.username,
edittime=now(),
edittype='insert';
END;
SHOW
TRIGGERS;
4.
为批量插入编写存储过程:
复制代码
代码如下:
DROP
procere
createUsers;
delimiter
|
create
procere
createUsers(IN
count
int)
begin
declare
i
int;
set
i=0;
while
i<count
do
insert
into
airuser
set
username=concat('user_',i);
set
i=i+1;
end
while;
end;
show
procere
status;
5.
调用存储过程,验证存储过程是工作的,并验证在插入记录前,触发器能正确被触发:
复制代码
代码如下:
call
createUsers(10);
6.
最后通过插入记录表再次验证:
复制代码
代码如下:
SELECT
*
FROM
mars_jpa.airuser_record;

Ⅵ 简单说说存储过程与触发器的概念与作用

存储过程就是一个sql的程序集 可以包含多个SQL语句 并可以附带各种逻辑判断及处理

触发器 就类似于程序里的事件触发
只是这里通常是某个字段的改变 某个表插入了数据 或者删除某些数据
以上这些处理引发的另外一些表数据的改变

Ⅶ 请问存储过程与触发器关系

存储过程需要调用才执行里面的sql语句。触发器是设置好触发条件,条件达到时自动运行里面的sql语句,比如对a表进行更新(update)操作时,相应的触发器就会运行。

热点内容
数据库系统概论第 发布:2025-01-09 04:29:34 浏览:456
一元夺宝服务器怎么样 发布:2025-01-09 04:24:58 浏览:515
idc脚本编写 发布:2025-01-09 04:14:40 浏览:371
玩我的世界电脑服务器延迟怎么办 发布:2025-01-09 04:04:18 浏览:65
pythonfor条件 发布:2025-01-09 03:51:14 浏览:724
如何获取代理服务器 发布:2025-01-09 03:50:39 浏览:657
安卓授权管理怎么设置在哪里设置 发布:2025-01-09 03:24:35 浏览:664
玩rust要什么配置的电脑 发布:2025-01-09 03:18:03 浏览:782
肥胖的脚本 发布:2025-01-09 03:11:26 浏览:467
沙箱脚本 发布:2025-01-09 02:53:15 浏览:465