首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何执行其他模式存储过程?

问如何执行其他模式存储过程?
EN

Stack Overflow用户
提问于 2014-01-23 13:30:29
回答 1查看 1.3K关注 0票数 2

我正在一个java web应用程序项目中工作。我有这样的要求,比如,我想调用其他模式存储过程在其他模式中执行。

但是,当我尝试这种方法时,它向error like the table already exists(contains in SP).展示了我可以理解问题是什么,它在创建存储过程的同一个模式中调用存储过程。

下面是详细的说明

代码语言:javascript
复制
 1. Schema1(Subscription) - Stored procedure created is here
 2. Schema2(Subscription1)- Executing the stored procedure here like following

    > USE Subscription1;  
    > CALL subscription.createcorporatedbproc();

请帮助我了解这个问题。

EN

回答 1

Stack Overflow用户

发布于 2014-01-23 13:44:27

我已经修改了您的SP --您可以在一个模式中创建它并从那里调用它,您只需要传递数据库名作为参数,在其中您需要创建表。

代码语言:javascript
复制
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `createCorporateDBProc`(IN DBName CHAR(100))
BEGIN 

     SET @DBName = DBName;
     SET @varSQL = CONCAT('CREATE TABLE IF NOT EXISTS ',@DBName,'.xxxx( ORDER_ORDER_ID BIGINT(20) NOT NULL, INFO_ID BIGINT(20) NOT NULL, OFFER_ID BIGINT(20) NOT NULL )  ENGINE=INNODB DEFAULT CHARSET=latin1;' );
     PREPARE stmt FROM @varSQL;
     EXECUTE stmt ;
     DEALLOCATE PREPARE stmt;

     /** If you need to create more tables , Replicate these 4 lines with your table structure **/
     SET @varSQL = CONCAT('CREATE TABLE IF NOT EXISTS ',@DBName,'.yyyy( ID BIGINT(20) NOT NULL, InfoID BIGINT(20) NOT NULL, TagID BIGINT(20) NOT NULL )  ENGINE=INNODB DEFAULT CHARSET=latin1;' );
     PREPARE stmt FROM @varSQL;
     EXECUTE stmt ;
     DEALLOCATE PREPARE stmt;
END $$

DELIMITER ;

测试CALL语句,我将创建一个新的数据库,然后调用SP来创建其中的表。

代码语言:javascript
复制
mysql> create database mydb_test;
Query OK, 1 row affected (0.00 sec)

mysql> CALL createCorporateDBProc('mydb_test');
Query OK, 0 rows affected (0.24 sec)

mysql> show tables from mydb_test;
+---------------------+
| Tables_in_mydb_test |
+---------------------+
| xxxx                |
+---------------------+
1 row in set (0.00 sec)

2014年1月26日最新消息

创建示例数据库并在该示例数据库中创建所需的所有表,然后可以使用此示例数据库创建其他数据库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21309596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档