mysql的存储过程,和oracle的大同小异
下面废话不多说,以为mysql默认为;来判断这条语句是否结束,所以我们必须重新声明下 DELIMITER $$ 以$$来结束这条语句
DELIMITER $$
CREATE PROCEDURE `p2`(inpid TINYINT)
BEGIN
DECLARE id TINYINT;
SET id=1;
IF inpid>0
THEN
SELECT * FROM city WHERE pid=inpid;
ELSE
SELECT * FROM city WHERE pid=id;
END IF;
END$$
DELIMITER ;
这是一个很简单的实例,这里和oracle是有点区别的,比如set id=1; 在oracle中 是 id:=0 类似这样的方式
mysql的视图,视图是是不占用内存的,所以我们在使用视图的时候,可以将一些经常要用到或者看到的数据,但是又不经常改动的,查询到视图中
DELIMITER $$
create view `stu_view` AS
SELECT
`student`.`id` AS `id`,
`student`.`student_name` AS `student_name`,
`student`.`age` AS `age`
FROM `student`$$
DELIMITER ;
mysql的触发器:触发器是指我们往数据库进行某种操作,来触发我们的事件 create trigger tir after/before insert/update/delete
DELIMITER $$
CREATE
TRIGGER `tri` AFTER INSERT ON `porder`
FOR EACH ROW BEGIN
UPDATE product SET product_num=2 WHERE product_id=1;
END;
$$
DELIMITER ;