1.存储过程
1.1 创建存储过程
CREATE PROCEDURE `get_customer`(IN customer_id INT, OUT customer_name VARCHAR(50)) BEGIN SELECT name INTO customer_name FROM customers WHERE id = customer_id; END;
解释:定义了一个名为get_customer的存储过程,该存储过程需要一个输入参数customer_id和一个输出参数customer_name。当传入一个有效的customer_id时,存储过程会在customers表中查找相应的顾客记录,并将其名称存储在customer_name变量中。
- 建表及数据准备
CREATE TABLE `customers` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `email` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; INSERT INTO `customers` (`name`, `email`) VALUES ('Alice', 'alice@example.com'), ('Bob', 'bob@example.com'), ('Charlie', 'charlie@example.com'); 创建一个名为customers的表,并插入3条顾客记录。该表包含id、name和email字段,其中id为自增主键。
1.2 存储过程运行
- CALL语句来调用该存储过程并传递所需的参数
- select 查看存储过程的结果
-- 调用名为`get_customer`的存储过程,并将参数值设置为1和@customer_name变量 CALL get_customer(1, @customer_name); -- 查看存储在@customer_name变量中的结果 SELECT @customer_name;
- 样例运行结果