MySQL 中透過儲存過程將行值增加和減少 1?
我們首先建立一個表,以將行值增加或減少 1。以下為查詢 −
mysql> create table IncrementAndDecrementValue −> ( −> UserId int, −> UserScores int −> ); Query OK, 0 rows affected (0.60 sec)
使用插入命令在表中插入一些記錄。查詢如下 −
mysql> insert into IncrementAndDecrementValue values(101,20000); Query OK, 1 row affected (0.13 sec) mysql> insert into IncrementAndDecrementValue values(102,30000); Query OK, 1 row affected (0.20 sec) mysql> insert into IncrementAndDecrementValue values(103,40000); Query OK, 1 row affected (0.11 sec)
使用 select 語句顯示錶中的所有記錄。查詢如下 −
mysql> select *from IncrementAndDecrementValue;
以下是輸出 −
+--------+------------+ | UserId | UserScores | +--------+------------+ | 101 | 20000 | | 102 | 30000 | | 103 | 40000 | +--------+------------+ 3 rows in set (0.00 sec)
以下是我的儲存過程,用於將行值增加或減少 1。
mysql> delimiter // mysql> create procedure IncrementAndDecrementRowValueByOne() −> begin −> declare first int; −> declare second int; −> set first = (select UserScores from IncrementAndDecrementValue where UserId = 101); −> set second = (select UserScores from IncrementAndDecrementValue where UserId = 102); −> update IncrementAndDecrementValue set UserScores = first-1 where UserId = 101; −> update IncrementAndDecrementValue set UserScores = second+1 where UserId = 102; −> end // Query OK, 0 rows affected (0.17 sec) mysql> delimiter ;
使用 CALL 命令呼叫儲存過程。查詢如下 −
mysql> call IncrementAndDecrementRowValueByOne(); Query OK, 1 row affected (0.24 sec)
檢查行值是否已更新,方法是使用 select 語句。查詢如下 −
mysql> select *from IncrementAndDecrementValue;
以下是輸出 −
+--------+------------+ | UserId | UserScores | +--------+------------+ | 101 | 19999 | | 102 | 30001 | | 103 | 40000 | +--------+------------+ 3 rows in set (0.00 sec)
我們將值 20000 減少到 19999,並將 30000 增加到 30001。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP