欢迎投稿

今日深度:

Mysql 存储过程示例,mysql存储过程示例

Mysql 存储过程示例,mysql存储过程示例


DELIMITER $
CREATE PROCEDURE generate_Equipment(district INT,warehouseNO VARCHAR(10) )
BEGIN
 DECLARE l_no VARCHAR(50);
 DECLARE l_address VARCHAR(20) ;
 DECLARE l_name VARCHAR(20) ;
 DECLARE l_city VARCHAR(20) DEFAULT "天津";
 DECLARE l_longitude DOUBLE;
 DECLARE l_latitude DOUBLE;
 DECLARE l_money BIGINT;
 DECLARE l_type TINYINT DEFAULT 2;
 DECLARE l_rand DOUBLE;
 DECLARE l_init LONG;
 DECLARE l_actual LONG;
 DECLARE i INT DEFAULT 0;

 WHILE i<100 DO
  SELECT longitude INTO l_longitude FROM warehouse WHERE NO=warehouseNO AND district=district;
  SELECT latitude INTO l_latitude FROM warehouse WHERE NO=warehouseNO AND district=district;
  SET l_address="address";
  SET l_name="equipment";
  SET l_rand=RAND();
  SET l_no=CONCAT('03Q',ROUND(l_rand*1000000000000));
  SET l_address=CONCAT(l_address,ROUND(l_rand*i));
  SET l_name=CONCAT(l_name,ROUND(l_rand*i));
  SET l_longitude=l_longitude+l_rand;
  SET l_latitude=l_latitude+l_rand;
  SET l_init=ROUND(l_rand*30000);
  SET l_actual=ROUND(l_rand*13000);
  INSERT INTO equipment (NO,NAME,city,district,address,longitude,latitude,init,actual,TYPE) VALUES(l_no,l_name,l_city,district,l_address,l_longitude,l_latitude,l_init,l_actual,l_type);
  SET i=i+1;
 END WHILE;
END;
$
DELIMITER ;


一个MYSQL存储过程的例子

DELIMITER $$

DROP PROCEDURE IF EXISTS `proc_test`$$

CREATE
PROCEDURE `carpo_xianjin`.`proc_test`(IN user_name VARCHAR(50), IN amount VARCHAR(20))
BEGIN
DECLARE v_balance VARCHAR(20);

SELECT balance INTO v_balance FROM userbalance WHERE USER = user_name;

IF v_balance > amount THEN
UPDATE userbalance SET balance = balance - amount WHERE USER = user_name;

INSERT INTO LOG(TYPE) VALUES('修改余额');
END IF;

END$$

DELIMITER ;
看下吧,你没给脚本,我也没办法测试。
 

mysql存储过程可以不可以输入多个参数的? 如果可以给一个例子

mysql> DELIMITER //
mysql> CREATE PROCEDURE HelloWorld2(
-> IN vUserName VARCHAR(10),
-> OUT vOutValue VARCHAR(10),
-> INOUT vInOutValue VARCHAR(10))
-> BEGIN
-> SELECT CONCAT('Hello ', vUserName);
-> SET vOutValue = 'A';
-> SET vInOutValue = 'B';
-> END//
Query OK, 0 rows affected (0.00 sec)

mysql> call HelloWorld2('Edward', @a, @b)//
+-----------------------------+
| CONCAT('Hello ', vUserName) |
+-----------------------------+
| Hello Edward |
+-----------------------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> select @a//
+------+
| @a |
+------+
| A |
+------+
1 row in set (0.00 sec)

mysql> select @b//
+------+
| @b |
+------+
| B |
+------+
1 row in set (0.00 sec)
参考资料:hi.baidu.com/...1.html
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2508.html NewsArticle Mysql 存储过程示例,mysql存储过程示例 DELIMITER $ CREATE PROCEDURE generate_Equipment(district INT,warehouseNO VARCHAR(10) ) BEGIN DECLARE l_no VARCHAR(50); DECLARE l_address VARCHAR(20) ; DECLARE l_name VARCHAR(20) ; DECLARE l...
评论暂时关闭