在mysql中怎么写触发器_mysql触发器怎么写

本文探讨了如何在MySQL中创建和修改触发器。针对特定业务场景,如当`info`表中`Yesorno`为`YES`时更新`books`表的`BorrowBooks`,以及在`report`表插入新记录后更新`expert_message`表。还讨论了科研计划表的触发器更新和mybatis中与MySQL触发器的配合使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.mysql 触发器怎么写

我有books 和 info 表。

books表中有 ISBN Allbooks BorrowsBooks

info 表有 ISBN Userno Yesorno

当我的 Yesorno 是 YES 时就从BorrowBooks中减去1;

这个触发器我已经写好了。可有个问题。就是当我Yesorno为Yes时..

books表中的每列Borrowbooks都减去1.。

我的触发器代码如下..

CREATE TRIGGER `chu` BEFORE INSERT ON `info` FOR EACH ROW BEGIN

IF new.Yesorno='Yes' then

UPDATE books SET Borrowbooks=Borrowbooks-1 ;

else

UPDATE books SET Borrowbooks=Borrowbooks+1 ;

end if;

END;;

就是update后面的where语句怎么写???让他减去的是你info表中写的ISBN号对应books表ISBN号后面的BorrowBooks数?。

2.这个Mysql触发器该怎么写

expert_message表中的一个字段名是Re_Expert还是Re_Experts?上下文写的不一致,我当Re_Expert处理了。

DELIMITER $$

CREATE TRIGGER t1 AFTER INSERT ON report

FOR EACH ROW BEGIN

INSERT INTO expert_message (Cate_Time,Re_Expert,Se_Hospital) VALUES (NOW(),new.Rs_ExpertID,new.Hs_ID);

END$$

DELIMITER ;

3.mysql修改触发器要怎么写

存储过程:

mysql > CREATE PROCEDURE up_sbwcsl(IN xbh int)

BEGIN

begin

select 科研计划.系部号,是否申报,完成数量 from 科研计划

Where 科研计划.系部号=@xbh and 是否申报='是'

END;

触发器语法一样的。

Create trigger up_ysbz

On 科研计划

For update

As

Begin

If update(验收标志)

Update 科研计划 set 验收标志='验收通过'

end

4.mybatis 怎么写mysql触发器

mysql数据表:

create table driver_order (

id int(11) unsigned NOT NULL AUTO_INCREMENT,

area_start varchar(200),

area_end varchar(200),

order_number varchar(200),

create_user varchar(200),

primary key (id)

);

创建触发器:

DELIMITER $$

CREATE TRIGGER seq_driver_order_number BEFORE INSERT ON driver_order

FOR each ROW

BEGIN

DECLARE seq_type INT(10);

SET seq_type = getUserNo(NEW.create_user);

SET NEW.order_number = getNextCommSequence("motor", seq_type);

END$$

DELIMITER ;

以下是mybatis操作触发器的配置方法:

SELECT ID,ORDER_NUMBER FROM DRIVER_ORDER where ID = last_insert_id()

INSERT INTO

DRIVER_ORDER(ID,ORDER_NUMBER,AREA_START,AREA_END,CREATE_USER,CREATE_TIME)

VALUES

(#{id},

#{orderNumber,jdbcType=VARCHAR},

#{areaStart,jdbcType=VARCHAR},

#{areaEnd,jdbcType=VARCHAR},

#{createUser,jdbcType=VARCHAR},

now())

a1df5db666f62067

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值