mysql学习记录
insert into? table_nameA(字段名) select 字段名 from?table_nameA(按照一般的select语句格式进行)
通过此语句,可以根据需要抓取数据组成新记录落表
存储过程:
创建:
CREATE PROCEDURE pro_name(
? ? ? ? IN orderNo INT,
????????OUT? param1 DECIMAL(8,2)
?)
BEGIN
? ? ? ? select? sum(price*num)
? ? ? ? INTO?param1
? ??????from TableA;
END;
存储过程可以不定义返回数;存储过程处理写在begin end 块中,IN表示入参,OUT表示出参,即处理后返回给调用方的结果
以上的例子调用情况如下:
CALL??pro_name(20005,@total)--即使存储过程无入参出参,仍需要带上()
此时,可以直接使用@total
select?@total
此语句,计算出来的就是一个订单的商品合计价格的值
在存储过程中可以使用declare定义中间变量
修改MySQL中的存储过程,可以使用 ALTER PROCEDURE 语句,内容格式同新增
删除存储过程:drop procedure pro_name,不需要带()
触发器:
以上是创建触发器的例子,触发器只针对表的insert、update以及delete操作生效,在操作前与操作后的关键字分别为BEFORE和AFTER,对视图以及临时表不起作用,select无需触发器
insert触发器是建立一张NEW虚拟表记录,delete触发器是建立一个OLD表进行进行记录,update触发器则是用old表接旧值,用new表接新值;old中的记录不可更改,new中的记录值在落表后可能被更改
触发器不能修改,需要做任何改动,删了重建即可,名称唯一,删除:drop trigger neworder
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!