mysql - 如何将表作为参数发送到 MySQL 中的存储过程?
问题描述
我在 MySQL 中有一个存储过程,例如:
DELIMITER $$
CREATE PROCEDURE addIns(IN insCode VARCHAR(21), IN insName VARCHAR(21), IN stat BIT(1))
BEGIN
INSERT INTO institution(institution.institution_code, institution.institution_name, institution.is_active)
VALUES (insCode, insName, stat);
END$$
DELIMITER ;
但我想要这样:
DELIMITER $$
CREATE PROCEDURE addIns(IN _institution)
BEGIN
INSERT INTO institution(institution.institution_code, institution.institution_name, institution.is_active)
VALUES (_institution.institution_code, _institution.institution_name, _institution.is_active);
END$$
DELIMITER ;
因为我想在 Java Spring App 中使用这个存储过程。我该如何提供?
我的直觉表是:
解决方案
CREATE PROCEDURE addIns(IN _institution)
BEGIN
@sql := CONCAT( 'INSERT INTO institution (institution_code, institution_name, is_active) SELECT institution_code, institution_name, is_active FROM ' , _institution);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DROP PREPARE stmt;
END
推荐阅读
- python - 回文分区
- python - 我不明白为什么多线程代码无法获取 lineedit.text()
- c++ - C ++如何“重载”模板以同时用于值和类型?
- activemq-artemis - 如何查找多播队列?
- linux - Cypress文件路径需要支持windows和linux
- python - 如何修复 Python 中 statsmodels 的 Holt 和 Holt-Winters 函数中的“TypeError”
- scala - 尝试执行 spark-shell 时出现错误“没有这样的文件或目录”
- node.js - 建议我最好的 NodeJs API 验证包
- node.js - mongoose find() 返回模型的属性
- javascript - 以优化方式处理 JSON