《Mysql必知必会》-----笔记(3)

插 入 数 据
插入多个行
 insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country) 
 values('Pep E. laPew','100 Main Street','Los Angles','CA','90046','USA'),
 	   ('M. Martian','42 Galaxy Way','New York','NY','11213','USA');

或者

 insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country) 
 values('Pep E. laPew','100 Main Street','Los Angles','CA','90046','USA');
  insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country) 
   values('M. Martian','42 Galaxy Way','New York','NY','11213','USA');
使用触发器

触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于BEGIN和END语句之间的一组语句): DELETE、 INSERT、 UPDATE,其他MySQL语句不支持触发器。
触发器用CREATE TRIGGER语句创建,用DROP TRIGGER语句删除一个触发器。

INSERT触发器
#创建触发器
 create trigger neworder after insert on orders
  for each row select new.order_num into @new_order_num;
 #插入数据
 insert into orders(order_date,cust_id) values(now(),10001);
 #查看值
  select @new_order_num;

create trigger neworder after insert on orders for each row select new.order_num ;会报错,因为从MySQL5以后不支持触发器返回结果集。
在这里插入图片描述

DELETE触发器

   在DELETE触发器代码内,你可以引用一个名为OLD的虚拟表,访
问被删除的行; OLD中的值全都是只读的,不能更新。
创建archive_orders表:

create table archive_orders
(order_num int(11) not null primary key,
order_date datetime not null,
cust_id int(11) not null);

创建触发器:

 create trigger deleteorder before delete on orders
 for each row
 insert into archive_orders(order_num,order_date,cust_id) 
 values(OLD.order_num,OLD.order_date,OLD.cust_id);

在这里插入图片描述

UPDATE触发器

在UPDATE触发器代码中,你可以引用一个名为OLD的虚拟表访问以前(UPDATE语句前)的值,引用一个名为NEW的虚拟表访问新更新的值;
在BEFORE UPDATE触发器中, NEW中的值可能也被更新(允许更改将要用于UPDATE语句中的值);
OLD中的值全都是只读的,不能更新。

create trigger updatevendor before update on vendors
 for each row set new.vend_state=Upper(new.vend_state);

更新数据:

update vendors set vend_state='ooooo' where vend_id=1001;

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值