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