存储过程和函数 mysql> HELP CREATE PROCEDURE; Name: 'CREATE PROCEDURE' Description: Syntax: CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body CREATE [DEFINER = { user | CURRENT_USER }] FUN…
当存储过程.函数.触发器和视图创建后,不单单创建者要执行,其它用户也可能需要执行,换句话说,执行者有可能不是创建者本身,那么在执行存储过程时,MySQL是如何做权限检查的? 在默认情况下,MySQL将检查创建者的权限.假设用户A创建了存储过程p()访问表T,并把execute的权限赋给了B,即使用户B没有访问表T的权限,也能够通过执行存储过程p()访问表T. 下面看一个例子: 首先,我们创建一个表test.t和两个用户a,b,并把权限赋予用户a root@(none) 05:39:45>crea…
http://blog.itpub.net/559237/viewspace-438942/ 今天花了半天时间来研究mysql的存储过程函数和触发器的创建,觉得和oracle的大同小异,只是语法上更艰涩点,可能是先入为主吧,经过多次失败,终于创建成功,需要注意创建前要先执行“delimiter //”,创建后以“//”结束,还有就是怎么没有像plsql dev这样的工具来调试程序呢.和oracle的在语法上主要不同点有如下几方面: 1.declare放到了begin体里面 2.给变量复制是set…
当数据库版本不允许直接使用存储过程.函数的语法时用delimiter // 将结束符改成//用完之后再写delimiter;将结束符改回来即可,调用过程.函数用call+其名字即可返回结果 delimiter // 不带参数过程 CREATE PROCEDURE proc () BEGIN SELECT * FROM city where type=1; end// 调用:call proc: 带参数过程 CREATE PROCEDURE countcity1(IN count int, OUT…
一. 编程基础 1)        结束符 2)        代码块 Begin 相当于 { end;  相当于 } 1.    变量 系统变量 Show variables; 查看系统变量sql_mode 会话变量 Set @变量名=值; 局部变量 // 在函数或过程内部定义的变量 Declare 变量名 类型 default 默认值; ; 2.    循环while 变量初始化; [名称]:While 条件判断 do 循环体; 增量; End 空格 while; delimiter //…
MySql高级-视图.函数.存储过程.触发器 目录 一.视图    1 1.视图的定义    1 2.视图的作用    1 (1)可以简化查询.    1 (2)可以进行权限控制,    3 3.查询视图    4 4.修改视图    4 5.删除视图    4 6.查看视图结构    4 7.查看所有视图    4 8.视图与表的关系    5 9.视图算法    6 二.SQL 编程    7 1.变量声明    7 (1)会话变量    7 (2)普通变量    7 (3)变量赋值形式  …
MySQL存储过程和函数 存储过程和函数的概念 存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合 存储过程和函数的好处 存储过程和函数可以重复使用,减轻开发人员的工作量.类似于java中方法可以多次调用 减少网络流量,存储过程和函数位于服务器上,调用的时候只需要传递名称和参数即可 减少数据在数据库和应用服务器之间的传输,可以提高数据处理的效率 将一些业务逻辑在数据库层面来实现,可以减少代码层面的业务处理 存储过程和函数的区别 函数必须有返回值 存储过程没有返回值 创建存储…
下面,主要是验证在MySQL主从复制环境下,存储过程,函数,触发器,事件的复制情况,这些确实会让人混淆. 首先,创建一张测试表 mysql),age int); Query OK, rows affected (0.10 sec) 存储过程 创建存储过程 delimiter // ),IN age int) BEGIN insert into test.t1 values(name,age); END// delimiter ; 通过查看二进制日志,可以看到该DDL语句已被记录 # at # :…
---视图 ---视图的概念:视图就是提供一个查询的窗口,来操作数据库中的数据,不存储数据,数据在表中. ---一个由查询语句定义的虚拟表. ---查询语句创建表 create table emp as select * from scott.emp; select * from emp; ---创建视图[必须有dba权限] create view v_emp as select ename, job from emp; ---查询视图 select * from v_emp; ---修改视图数…
本文目录:1.创建存储过程.函数 1.1 存储过程的IN.OUT和INOUT2.修改和删除存储过程.函数3.查看存储过程.函数信息 在MySQL/MariaDB中,存储过程(stored procedure).存储函数(stored function).触发器(trigger).事件(event)统称为存储程序(stored programs).此外,存储过程和存储函数还合称为stored routines. 对于函数来说,除了存储函数,还有用户自定义函数(UDF,user defined fu…