mysql存储过程的应用
欢迎进入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]

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



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

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

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.

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.

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

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.

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.

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
