mysql触发器有几种(mysql 触发器)

2024-06-19 08:30:56 23

mysql触发器有几种(mysql 触发器)

本文目录

mysql 触发器

create trigger 触发器名称after/befor (触发时间)insert/update/delete (监视事件)on 表名 (监视地址) for each rowbeginsql1;..sqlN;end其实这里可以不用触发器的,像这种功能的很多,课程和成绩是一对多,学生和课程也是一对多,把这些依赖关系弄清楚,弄确定弄好后,你删除一条字典表的信息后,对应的子表的信息也会被删的!

MySQL如何用触发器实现新增时删除最后一条数据

首先mysql 只支持3种触发器1 DELETE 2 INSERT 3 UPDATE其他的MySQL语句不支持触发器,所以你第二个需求不能用触发器实现。其次是 非常遗憾,MYSQL中触发器中不能对本表进行 insert ,update ,delete 操作,以免递归循环触发。所以你第一个需求不能在insert前删除本表数据对于update 能用set 进行操作替换,insert与delete只能借助第二张表才能实现需要的目的。

mysql的触发器和oracle触发器的区别

oracle触发器格式:在CODE上查看代码片派生到我的代码片CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name DECLARE arg_name type BEGIN pl/sql语句 END MySQL触发器格式:在CODE上查看代码片派生到我的代码片CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name BEGIN DECLARE arg_name1 sql语句 END 创建测试表(建表语句适用于Oracle、MySQL):在CODE上查看代码片派生到我的代码片CREATE TABLE test( id int, name varchar(10), age int, birthday date, description varchar(50), PRIMARY KEY (id) ); CREATE TABLE test_log( id int, dealtime date, dealtype varchar(10), PRIMARY KEY (`id`) ); Oracle触发器和MySQL触发器的区别如下:1,创建语句格式不同Oracle:create or replace(Oracle客户端需要手动提交,MySQL客户端设置的自动提交)在CODE上查看代码片派生到我的代码片SQL》 CREATE OR REPLACE TRIGGER trigger_test_insert 2 BEFORE INSERT ON test 3 FOR EACH ROW 4 BEGIN 5 insert into test_log values(1,sysdate,’insert’); 6 END; 7 / Trigger created SQL》 insert into test(id, name) values(1, ’name’); 1 row inserted SQL》 commit; Commit complete SQL》 select * from test_log; ID DEALTIME DEALTYPE --------------------------------------- ----------- ---------- 1 2014/7/16 1 insert MySQL:不包含or replace在CODE上查看代码片派生到我的代码片mysql》 delimiter $ CREATE TRIGGER trigger_test_insert BEFORE INSERT ON test FOR EACH ROW BEGIN insert into test_log values(1,now(),’insert’); END$ delimiter ; Query OK, 0 rows affected mysql》 insert into test(id, name) values(1, ’name’); Query OK, 1 row affected mysql》 select * from test_log; +----+------------+----------+ | id | dealtime | dealtype | +----+------------+----------+ | 1 | 2014-07-16 | insert | +----+------------+----------+ 1 row in set 2,变量的声明位置、声明格式均不相同Oracle:声明位置在触发时的执行语句块外部通过%type的方式将变量与表特定字段类型相关联的好处是:在某些情况下,修改该字段类型时不需要修改触发器(如:字段类型由varchar(10)修改为varchar(20)时,不需要修改触发器)在CODE上查看代码片派生到我的代码片SQL》 CREATE TRIGGER trigger_test_insert 2 BEFORE INSERT ON test 3 FOR EACH ROW 4 DECLARE id1 int default 1; 5 id2 int:=1; 6 id3 test_log.id%type:=1; 7 BEGIN 8 insert into test_log values(id1+id2+id3,sysdate,’insert’); 9 END; 10 / Trigger created SQL》 insert into test(id, name) values(1, ’name’); 1 row inserted SQL》 commit; Commit complete SQL》 select * from test_log; ID DEALTIME DEALTYPE --------------------------------------- ----------- ---------- 3 2014/7/16 1 insert MySQL:声明位置在触发时的执行语句块内部在CODE上查看代码片派生到我的代码片mysql》 delimiter $ CREATE TRIGGER trigger_test_insert BEFORE INSERT ON test FOR EACH ROW BEGIN DECLARE id1 int DEFAULT 1; DECLARE id2 int DEFAULT 1; insert into test_log values(id1+id2,now(),’insert’); END$ delimiter ; Query OK, 0 rows affected mysql》 insert into test(id, name) values(1, ’name’); Query OK, 1 row affected mysql》 select * from test_log; +----+------------+----------+ | id | dealtime | dealtype | +----+------------+----------+ | 2 | 2014-07-16 | insert | +----+------------+----------+ 1 row in set 3,注释符不同Oracle:使用/* */作为注释符,或者两个连续的-作为注释符(PL/SQL块中至少包含一条可执行语句)在CODE上查看代码片派生到我的代码片CREATE OR REPLACE TRIGGER trigger_test_insert BEFORE INSERT ON test FOR EACH ROW BEGIN --just a test /* just a test */ null; END; / MySQL:使用/* */作为注释符,或者两个连续的-后加一个空格作为注释符在CODE上查看代码片派生到我的代码片delimiter $ CREATE TRIGGER trigger_test_insert BEFORE INSERT ON test FOR EACH ROW BEGIN /* just a test */ -- 两个‘-’后面必须带空格 END$ delimiter ; 4,赋值语法不同Oracle:可以通过select into语句赋值,还可以通过:=进行赋值在CODE上查看代码片派生到我的代码片SQL》 CREATE OR REPLACE TRIGGER trigger_test_insert 2 BEFORE INSERT ON test 3 FOR EACH ROW 4 DECLARE id int; 5 BEGIN 6 select max(tl.id) into id from test_log tl; 7 if id is null then 8 id:=1; 9 else 10 id:=id+1; 11 end if; 12 insert into test_log values(id,sysdate,’insert’); 13 END; 14 / Trigger created SQL》 insert into test(id, name) values(1, ’name’); 1 row inserted SQL》 commit; Commit complete SQL》 select * from test_log; ID DEALTIME DEALTYPE --------------------------------------- ----------- ---------- 1 2014/7/16 1 insert MySQL:可以通过select into语句赋值,还可以通过set语句进行赋值在CODE上查看代码片派生到我的代码片mysql》 delimiter $ CREATE TRIGGER trigger_test_insert BEFORE INSERT ON test FOR EACH ROW BEGIN DECLARE id int; select max(tl.id) into id from test_log tl; if id is null then set id=1; else set id=id+1; end if; insert into test_log values(id,now(),’insert’); END$ delimiter ; Query OK, 0 rows affected mysql》 insert into test(id, name) values(1, ’name’); Query OK, 1 row affected mysql》 select * from test_log; +----+------------+----------+ | id | dealtime | dealtype | +----+------------+----------+ | 1 | 2014-07-16 | insert | +----+------------+----------+ 1 row in set 5,对于行级更新触发器Oracle:原有行用:old表示,新行用:new表示在CODE上查看代码片派生到我的代码片SQL》 CREATE OR REPLACE TRIGGER trigger_test_update 2 BEFORE UPDATE ON test 3 FOR EACH ROW 4 BEGIN 5 :new.description := ’change name-》’); END$ delimiter ; Query OK, 0 rows affected mysql》 insert into test(id, name) values (1, ’aaa’); Query OK, 1 row affected mysql》 update test set name = ’bbb’ where id = 1; Query OK, 1 row affected Rows matched: 1 Changed: 1 Warnings: 0 mysql》 select id, name, description from test; +----+------+-------------------------+ | id | name | description | +----+------+-------------------------+ | 1 | bbb | change name | +----+------+-------------------------+ 1 row in set 6,其它一些语法、函数上的区别Oracle:使用if...elsif...elseMySQL:使用if...elseif...elseOracle:sysdate指代系统时间MySQL:sysdate()指代系统时间

Mysql触发器

主要是第7行 if @score》85 这个地方缺少 then了 , 注意 if ... then 组合或者使用下面的语句:mysql》 DELIMITER |mysql》 create trigger set_record after insert on score -》 for each row begin -》 set @studentid=new.student_id; -》 set @record=new.record; -》 set @score=new.score; -》 if @score》85 then -》 update score set score.record=5 where student_id=@studentid; -》 else if @score》70 then -》 update score set sc.record=4 where student_id=@studentid; -》 else if @score》60 then -》 update score set score.record=3 where student_id=@studentid; -》 else -》 update score set score.record=0 where student_id=@studentid; -》 end if; -》 end; -》 |

mysql触发器

create trigger 触发器名称 after/before insert/update/delete on 表名 for each row begin sql 语句—一个或者多个语句范围在 insert/update/delete内; end

mysql数据库中一个表可以有多少个触发器

可以更新,删除,插入触发器,不同种类的触发器可以存在于同一个表,但同种类的不能有多个。一个更新、一个删除是可以共存的。

mysql触发器有几种(mysql 触发器)

本文编辑:admin

本文相关文章:


mysql触发器有几种(mysql触发器)

mysql触发器有几种(mysql触发器)

大家好,今天小编来为大家解答以下的问题,关于mysql触发器有几种,mysql触发器这个很多人还不知道,现在让我们一起来看看吧!本文目录mysql触发器Mysql触发器mysql数据库中一个表可以有多少个触发器mysql的触发器和oracl

2024年8月22日 12:20

mysql触发器有几种(mysql数据库中一个表可以有多少个触发器)

mysql触发器有几种(mysql数据库中一个表可以有多少个触发器)

本文目录mysql数据库中一个表可以有多少个触发器mysql的触发器和oracle触发器的区别MySQL如何用触发器实现新增时删除最后一条数据mysql触发器mysql 触发器Mysql触发器mysql数据库中一个表可以有多少个触发器可以更

2024年7月11日 05:11

更多文章:


三星电脑驱动下载(三星电脑驱动下载方法)

三星电脑驱动下载(三星电脑驱动下载方法)

三星电脑驱动下载方法关于“三星电脑驱动下载方法”的相关内容,条理明确的解释如下:一、了解驱动的重要性驱动是连接电脑硬件与操作系统之间的桥梁,它能够让操作系统更好地识别和利用电脑硬件,从而实现各项功能的正常运作。如果电脑缺少或错误安装了驱动,

2024年7月15日 13:01

dell笔记本驱动(Dell笔记本驱动下载)

dell笔记本驱动(Dell笔记本驱动下载)

Dell笔记本驱动下载“Dell笔记本驱动下载”相关内容是指为了确保Dell笔记本电脑的正常运行和优化性能,需要从官方或可信赖的网站上下载并安装正确的驱动程序。以下是关于这一主题的详细解释:1. 为什么需要驱动?驱动程序是连接硬件和操作系统

2024年7月17日 04:47

天津戴尔(天津戴尔电脑售后维修服务中心在哪)

天津戴尔(天津戴尔电脑售后维修服务中心在哪)

天津戴尔电脑售后维修服务中心在哪关于“天津戴尔电脑售后维修服务中心”的相关内容,以下是条理清晰的解释:1. 地理位置:天津戴尔电脑售后维修服务中心位于天津市,具体地址可能因城市区域或店面调整而有所变化。为了确保准确找到位置,建议通过官方渠道

2024年7月18日 13:25

thinkpad e430c(thinkpad e430c参数)

thinkpad e430c(thinkpad e430c参数)

thinkpad e430c参数关于ThinkPad E430c的参数,这里进行一些详细且条理清晰的解释:1. 基本概述:ThinkPad E430c是一款联想推出的商务笔记本电脑。其设计以耐用和可靠著称,适合企业用户或需要高性能计算的消费

2024年7月13日 04:17

惠普envy4(惠普envy4更换固态硬盘教程)

惠普envy4(惠普envy4更换固态硬盘教程)

惠普envy4更换固态硬盘教程关于“惠普envy4更换固态硬盘教程”的条理明确的内容如下:一、准备工作1. 工具准备:螺丝刀、硬盘拆装工具、新固态硬盘(确保与您的电脑兼容)。2. 备份数据:在更换硬盘之前,请确保备份所有重要数据,以防丢失。

2024年7月9日 00:11

广州笔记本批发(广州笔记本批发市场在哪里)

广州笔记本批发(广州笔记本批发市场在哪里)

广州笔记本批发市场在哪里关于“广州笔记本批发市场在哪里”的有关内容,条理清晰的解释如下:1. 地理位置:广州作为一个重要的商品集散地,拥有多个批发市场。其中,广州笔记本批发市场通常位于广州市的批发商品集中地带,如白云区、天河区等地。2. 具

2024年7月18日 01:16

acer4745g(acer4745g拆机教程)

acer4745g(acer4745g拆机教程)

acer4745g拆机教程"ACER 4745G拆机教程"涉及对Acer品牌的4745G型号笔记本电脑进行拆解的步骤和指导。以下是关于这一教程的条理明确的解释:一、准备工作:1. 工具准备:螺丝刀、小十字螺丝刀、塑料撬刀、小剪刀等工具。2.

2024年7月27日 21:57

华硕zenfone2(华硕Zenfone2手机)

华硕zenfone2(华硕Zenfone2手机)

华硕Zenfone2手机华硕Zenfone 2是一款中高端智能手机,下面是一些有关华硕Zenfone 2的相关内容:一、设计及硬件配置1. 屏幕:华硕Zenfone 2搭载一块大尺寸的高清显示屏,为用户提供出色的视觉体验。2. 处理器:配备

2024年7月18日 16:16

联想笔记本官方网站(联想笔记本官方网站查询真伪入口)

联想笔记本官方网站(联想笔记本官方网站查询真伪入口)

联想笔记本官方网站查询真伪入口关于“联想笔记本官方网站查询真伪入口”的相关内容,条理明确的解释如下:一、背景简介为了保障消费者的权益,联想笔记本官方网站提供了真伪查询服务。通过此服务,消费者可以验证所购买的联想笔记本是否为正品,以及产品的详

2024年7月5日 21:21

散热好的笔记本电脑(散热好的笔记本电脑有哪些)

散热好的笔记本电脑(散热好的笔记本电脑有哪些)

散热好的笔记本电脑有哪些关于“散热好的笔记本电脑有哪些”的相关内容,可以按照以下条理进行解释:一、概述笔记本电脑的散热性能对于其稳定运行和持久使用至关重要。散热性能良好的笔记本电脑可以确保处理器、显卡等硬件在运行过程中得到有效的散热,从而避

2024年7月14日 17:26

su9400(su9400相当于什么cpu)

su9400(su9400相当于什么cpu)

su9400相当于什么cpu关于“SU9400相当于什么CPU”,这个问题的回答可能会因为具体的信息差异(如处理器类型、厂商和产品型号等)而有所不同。SU9400似乎不是一个非常普遍或常见的处理器型号,所以我只能提供一个相对一般性的比较解释

2024年7月27日 04:31

artone笔记本(artone笔记本评测)

artone笔记本(artone笔记本评测)

artone笔记本评测“Artone笔记本评测”的内容通常会涵盖多个方面,包括外观设计、硬件配置、功能应用、使用体验和综合评价等。下面将从这几个方面,以条理清晰的方式为你解释相关内容。一、外观设计1. 材质与做工:Artone笔记本的外观通

2024年7月20日 22:36

dell续保(dell续保一年多少钱)

dell续保(dell续保一年多少钱)

dell续保一年多少钱关于“dell续保一年多少钱”的问题,首先需要明确的是,dell续保的价钱会根据所选择的电脑型号、配置、保修服务类型以及地区差异等因素有所不同。一般来说,dell的续保服务通常指的是延长产品保修期,为电脑提供额外的维修

2024年7月9日 19:30

dell销售(dell销售电话)

dell销售(dell销售电话)

dell销售电话“dell销售电话”指的是与Dell(一家知名的计算机产品生产商)相关的销售服务电话号码。以下是对该内容的相关解释:1. 电话服务内容:Dell的销售电话通常用于为消费者和企业客户提供销售支持、产品咨询、订单处理、售后服务等

2024年7月13日 14:41

戴尔d400(戴尔d400什么时候出来的型号)

戴尔d400(戴尔d400什么时候出来的型号)

戴尔d400什么时候出来的型号关于“戴尔d400什么时候出来的型号”这一问题,首先需要澄清的是,戴尔的D400并不单指一个具体型号的电脑,而是Dell笔记本电脑的代号或者命名中的一个类别。不过,至于它具体的上市时间和具体型号配置等细节,这需

2024年7月17日 03:46

联想商用笔记本电脑(联想商用笔记本电脑哪款好)

联想商用笔记本电脑(联想商用笔记本电脑哪款好)

联想商用笔记本电脑哪款好关于“联想商用笔记本电脑哪款好”的问题,以下是一些相关内容的条理化解释:一、考虑因素1. 预算:首先,需要确定购买联想商用笔记本电脑的预算范围。联想的商用笔记本电脑种类繁多,价格各异,从低端到高端都有。2. 需求:根

2024年7月6日 18:16

龙芯笔记本(龙芯笔记本电脑价格表)

龙芯笔记本(龙芯笔记本电脑价格表)

龙芯笔记本电脑价格表“龙芯笔记本电脑价格表”是指关于采用龙芯处理器的笔记本电脑的价格列表。龙芯是中国自主研发的CPU(中央处理器)品牌,近年来在国产电脑中逐渐普及。以下是关于“龙芯笔记本电脑价格表”的条理明确的解释:1. 价格因素: -

2024年7月14日 10:26

t61p(T61p显卡门)

t61p(T61p显卡门)

T61p显卡门“T61p显卡门”是涉及某些特定型号笔记本电脑,尤其是搭载T61p显卡的电脑的一种问题。下面我将尽量用条理清晰的方式解释相关内容:一、定义:T61p显卡门通常指的是搭载特定T61p显卡的笔记本电脑在运行时遇到的一些性能或兼容性

2024年7月28日 00:56

x61s(x61升级固态硬盘)

x61s(x61升级固态硬盘)

x61升级固态硬盘“X61升级固态硬盘”是指对一款型号为X61的笔记本电脑进行固态硬盘(SSD)的升级操作。以下是关于这个主题的详细解释:一、为什么要升级固态硬盘?升级固态硬盘的主要目的是提高电脑的性能。相较于传统的机械硬盘,固态硬盘在读写

2024年7月25日 20:46

平板电脑游戏下载网站(平板下载端游)

平板电脑游戏下载网站(平板下载端游)

平板下载端游“平板下载端游”通常指的是在平板电脑(如iPad、Android平板等)上安装和运行传统端游(电脑游戏)的过程。下面,我会尽量条理清晰地解释与这个主题相关的内容。一、概述在过去的几年里,随着平板技术的发展和人们对游戏体验的追求,

2024年7月22日 15:20

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1153
标签列表

热门搜索