Home Database Mysql Tutorial mysql存储过程的应用

mysql存储过程的应用

Jun 07, 2016 pm 03:01 PM
linux mysql storage application Community process Enter

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 MySQL存储过程的创建 (1)。 格式 MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,…]]) [特性 …] 过程体 这里先举个例子: mysql DELIMITER // mysql CREATE PROCEDURE proc1(

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  MySQL存储过程的创建

  (1)。 格式

  MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,…]])

  [特性 …] 过程体

  这里先举个例子:

  mysql> DELIMITER //

  mysql> CREATE PROCEDURE proc1(OUT s int)

  -> BEGIN

  -> SELECT COUNT(*) INTO s FROM user;

  -> END

  -> //

  mysql> DELIMITER ;

  注:

  (1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。

  (2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。

  (3)过程体的开始与结束使用BEGIN与END进行标识。

  这样,我们的一个MySQL存储过程就完成了,是不是很容易呢?看不懂也没关系,接下来,我们详细的讲解。

  下面的例子主要用到了

  Ⅰ。 if-then -else语句

  Ⅰ。 FOUND_ROWS() 语句

  #记录每天的步行、睡眠、体重、消耗卡路里等信息

  #userRecordDetail 表中,如果存在当天数据,则修改,否则新增

  #userRecord 表中,如果存在,则累加,否则新增

  #类型:1步行2睡眠3卡路里消耗4体重

  #CALL userRecord_create(1001,45,100,1000,1000,500,500,2,1);

  DROP PROCEDURE IF EXISTS pro_userRecord_stepNum;

  DELIMITER //

  CREATE PROCEDURE pro_userRecord_stepNum(IN p_userId INT,IN p_stepNum INT)

  BEGIN

  DECLARE RCount INT;

  -- 查看用户是否有详细记录

  SELECT id FROM userRecordDetail WHERE userId = p_userId AND DATE(createTime) = CURDATE() LIMIT 1;

  SELECT FOUND_ROWS() INTO RCount;

  IF (RCount=0) THEN

  --  查看userRecord是否有用户总记录信息,不存在,则添加,否则修改

  SELECT id  FROM userRecord WHERE userId = p_userId LIMIT 1;

  SELECT FOUND_ROWS() INTO RCount;

  IF(RCount = 0 )THEN

  INSERT  INTO `userRecord`(`userId`,`totalStep`,`updateTime`,`createTime`)

  VALUES (p_userId,p_stepNum,NOW(),NOW());

  ELSE

  UPDATE userRecord SET totalStep = totalStep+p_stepNum WHERE userId = p_userId;

  END IF;  -- 结束

  -- 插入一条用户记录详细信息

  INSERT  INTO `userRecordDetail`(`weigh`,`calorie`,`stepNum`,`userId`,

  `sleepTimes`,`lightSleepTimes`,`heavySleepTimes`,

  `wakeupNum`,`updateTime`,`createTime`)

  VALUES (0,0,p_stepNum, p_userId,0,0,0,0,NOW(),NOW());

  ELSE

  --  查看是否有用户总记录信息,不存在,则添加,否则修改

  SELECT id  FROM userRecord WHERE userId = p_userId LIMIT 1;

  SELECT FOUND_ROWS() INTO RCount;

  IF(RCount = 0 )THEN

  INSERT  INTO `userRecord`(`userId`,`totalStep`,`updateTime`,`createTime`)

  VALUES (p_userId,p_stepNum,NOW(),NOW());

  ELSE

  UPDATE userRecord SET totalStep = totalStep + p_stepNum WHERE userId = p_userId;

  END IF;

  -- 修改userRecordDetail

  UPDATE userRecordDetail SET stepNum = stepNum + p_stepNum WHERE userId = p_userId;

  END IF;

  END;//

[1] [2] [3] 

mysql存储过程的应用

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

MySQL's Place: Databases and Programming MySQL's Place: Databases and Programming Apr 13, 2025 am 12:18 AM

MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

How to start apache How to start apache Apr 13, 2025 pm 01:06 PM

The steps to start Apache are as follows: Install Apache (command: sudo apt-get install apache2 or download it from the official website) Start Apache (Linux: sudo systemctl start apache2; Windows: Right-click the "Apache2.4" service and select "Start") Check whether it has been started (Linux: sudo systemctl status apache2; Windows: Check the status of the "Apache2.4" service in the service manager) Enable boot automatically (optional, Linux: sudo systemctl

What to do if the apache80 port is occupied What to do if the apache80 port is occupied Apr 13, 2025 pm 01:24 PM

When the Apache 80 port is occupied, the solution is as follows: find out the process that occupies the port and close it. Check the firewall settings to make sure Apache is not blocked. If the above method does not work, please reconfigure Apache to use a different port. Restart the Apache service.

How to restart the apache server How to restart the apache server Apr 13, 2025 pm 01:12 PM

To restart the Apache server, follow these steps: Linux/macOS: Run sudo systemctl restart apache2. Windows: Run net stop Apache2.4 and then net start Apache2.4. Run netstat -a | findstr 80 to check the server status.

How to optimize the performance of debian readdir How to optimize the performance of debian readdir Apr 13, 2025 am 08:48 AM

In Debian systems, readdir system calls are used to read directory contents. If its performance is not good, try the following optimization strategy: Simplify the number of directory files: Split large directories into multiple small directories as much as possible, reducing the number of items processed per readdir call. Enable directory content caching: build a cache mechanism, update the cache regularly or when directory content changes, and reduce frequent calls to readdir. Memory caches (such as Memcached or Redis) or local caches (such as files or databases) can be considered. Adopt efficient data structure: If you implement directory traversal by yourself, select more efficient data structures (such as hash tables instead of linear search) to store and access directory information

How to connect to the database of apache How to connect to the database of apache Apr 13, 2025 pm 01:03 PM

Apache connects to a database requires the following steps: Install the database driver. Configure the web.xml file to create a connection pool. Create a JDBC data source and specify the connection settings. Use the JDBC API to access the database from Java code, including getting connections, creating statements, binding parameters, executing queries or updates, and processing results.

How to solve the problem that apache cannot be started How to solve the problem that apache cannot be started Apr 13, 2025 pm 01:21 PM

Apache cannot start because the following reasons may be: Configuration file syntax error. Conflict with other application ports. Permissions issue. Out of memory. Process deadlock. Daemon failure. SELinux permissions issues. Firewall problem. Software conflict.

How to learn Debian syslog How to learn Debian syslog Apr 13, 2025 am 11:51 AM

This guide will guide you to learn how to use Syslog in Debian systems. Syslog is a key service in Linux systems for logging system and application log messages. It helps administrators monitor and analyze system activity to quickly identify and resolve problems. 1. Basic knowledge of Syslog The core functions of Syslog include: centrally collecting and managing log messages; supporting multiple log output formats and target locations (such as files or networks); providing real-time log viewing and filtering functions. 2. Install and configure Syslog (using Rsyslog) The Debian system uses Rsyslog by default. You can install it with the following command: sudoaptupdatesud

See all articles