MySQL - 存储过程 [Stored Procedure] - 学习/实践

1.应用场景

主要学习存储过程,及其优缺点,

明白为什么有公司使用,有公司不适用.

在日常学习/实践中,可以使用存储过程进行数据的读写练习等.反而效率更高.

2.学习/操作

环境:

Windows 10 64位 专业版  i7 32G 

 

1.介绍

TBD

 

2.知识点

TBD

 

3.实践

 

如何使用动态sql, 将表名称作为参数传递进去, 从而执行不同数据表的批量数据填充操作.

Note:

MySQL本身是不支持直接将表名和字段名作为参数在存储函数中使用的, 这里采用迂回策略, 运用字符串拼接的方式.

DELIMITER $$
CREATE PROCEDURE `batch_insert_data_proc`(IN tableName VARCHAR(255), IN number INT)
BEGIN
    DECLARE i int;
    SET i = 1;
    WHILE (i <= number) DO
        SET @sql = CONCAT('INSERT INTO ', tableName, ' VALUES(', i, ',' , i, ',', i, ');');
        PREPARE s1 from @sql;
        EXECUTE s1;
        SET i = i + 1;
    END WHILE;
END $$
DELIMITER ;

调用才存储过程:

CALL batch_insert_data_proc('count_hundred', 100);

结果:  //插入成功

MySQL - 存储过程 [Stored Procedure] - 学习/实践_第1张图片

MySQL - 存储过程 [Stored Procedure] - 学习/实践_第2张图片

 

 

4.优缺点

TBD

 

5.思考

TBD

 

 

后续补充

...

3.问题/补充

TBD

4.参考

https://time.geekbang.org/column/article/106250  //13丨什么是存储过程,在实际项目中用得多么?

https://stackoverflow.com/questions/6609778/mysql-stored-procedure-dont-take-table-name-as-parameter  //MySQL存储过程不允许参数传递表名的解决办法

后续补充

...

 

你可能感兴趣的:(数据库-DATABASE,MYSQL,MySQL,存储过程,Store,Procedure)