Mysql中的存储过程详解
来源:互联网 发布:淘宝网dnf游戏币 编辑:程序博客网 时间:2024/06/06 00:50
对于存储过程来说,虽然大多数语法是相同的,但是在Mysql中还是有些地方要注意的。上一篇我为大家统一介绍了一下存储过程的理论以及语法。今天在练习的过程中发现根本不是那么回事,今天我为大家介绍详细介绍一下在Mysql中该如何写存储过程。
1:首先我们介绍在Mysql中创建存储过程(无参)。
DELIMITER // #写在开始CREATE PROCEDURE `tests`.`create_test_usesr`()BEGIN CREATE TABLE studentss( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, student_name VARCHAR(20) ); SELECT * FROM test_user;END; // DELIMITER ; #写在结尾
注意:在Mysql中写存储过程语句在开始和结束的时候一定要写 “DELIMITER // //DELIMITER ;”
DELIMITER 其实就是定义了一个语句执行的结束符,类似函数or存储过程这样的create语句由于其中包含了很多的”;”,而默认MySQL的结束符就是”;”,那么当我们创建的时候就会报错,有了DELIMITER 就可以告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
2:创建带有传入参数的存储过程:
DELIMITER // CREATE PROCEDURE proce_test_user_param(IN ids INT,IN userNames VARCHAR(20)) BEGIN SELECT * FROM test_user WHERE id = ids AND userName = userNames; END// DELIMITER;CALL proce_test_user_param ('1','zpzp06')
注意 传入参数的参数名称不能和表字段的名称一样,否则查询数据会有误的。
3:创建既有传入参数又有返回参数的存储过程:
DELIMITER //DROP PROCEDURE IF EXISTS insert_sp3 CREATE PROCEDURE insert_sp3( IN p INT, IN userName VARCHAR(20), IN passwords VARCHAR(20), IN age VARCHAR(20), IN address VARCHAR(20), IN height VARCHAR(20), OUT p2 INT) BEGIN IF p = 1 THEN SET @v = 1; ELSE SET @v = 2; END IF; INSERT INTO test_user(userName,passwords,sex,age,address,height) VALUES(userName,passwords,@v,age,address,height); SELECT MAX(id) FROM test_user; END;// DELIMITER#返回参数前面一定要有一个@符号。CALL insert_sp3(1,'zpzp08','1233432','122','北京市顺义区河南路','183CM',@ret)
5:既做输入参数有做输出参数的存储过程:
DELIMITER //DROP PROCEDURE IF EXISTS proc_select_sp4CREATE PROCEDURE proc_select_sp4(INOUT p4 INT) BEGIN IF p4 = 1 THEN SET @v = 300; ELSE SET @v = 400; END IF; SELECT @v; END;// DELIMITERSET @pp = 1;CALL proc_select_sp4(@pp)
0 0
- Mysql中的存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySql 存储过程详解
- mysql 存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- MySQL存储过程详解
- selenium ide 的安装方法
- gpu 编程简介
- 使用Itext-Flying Saucer将Html转PDF的font-family问题
- 提供给开发者 10 款最好的 Python IDE
- vs2013编译 protoBuffer编译出现的问题
- Mysql中的存储过程详解
- UIButton的基本用法和事件
- 32bit/64bit-Ubuntu14.04+anaconda+CPU版本的Caffe安装教程
- java中hashCode()与equals()详解
- 极限安全新闻播报(04.08)
- ceph 对象存储网关radosgw和S3接口详细安装配置测试文档
- 引入cocoaPods后找不到头文件,实际头文件就包含在Pods下
- parfor, callback, real-time data reading
- linux日志文件相关