首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于创建过程的MySQL外壳脚本

问用于创建过程的MySQL外壳脚本
EN

Stack Overflow用户
提问于 2011-04-26 03:37:42
回答 1查看 955关注 0票数 1

我正在为Mac编写一个安装脚本,并使用shell脚本创建一个数据库和程序使用所需的所有表。我面临的问题是创建我们需要的过程。我尝试了多种实现方式,想知道是否有人知道一个例子,或者它是否可能。下面是我在这个过程中得到的东西。如果有任何帮助,我将不胜感激。

操作步骤:

代码语言:javascript
复制
DELIMITER //
CREATE PROCEDURE Hours_Procedure()
BEGIN
DECLARE avg_usage FLOAT;
DECLARE max_time TIMESTAMP;
DECLARE counter INTEGER;
DECLARE NumOfNodes INTEGER;
DECLARE Num_Hour_Records INTEGER;

SET counter = 0;
SELECT MAX(Node_Num) INTO NumOfNodes FROM Minutes;

loop1 : LOOP SET avg_usage = 0.0;
 SET counter = counter + 1;
 IF counter = (NumOfNodes + 1) THEN LEAVE loop1;
 ELSE SELECT AVG(x.Power_Usage), MAX(x.Record_Time) INTO avg_usage, max_time FROM(
  SELECT M.Power_Usage, M.Record_Time FROM Minutes M
  WHERE M.Node_Num = counter ORDER BY RID DESC LIMIT 60) x;
  INSERT INTO Hours(Node_Num, Record_Time, Power_Usage) VALUES (counter, max_time, avg_usage);
  DELETE FROM Minutes WHERE Node_Num = counter ORDER BY RID ASC LIMIT 60;
 END IF;
END LOOP loop1;

DROP INDEX Hours_Index ON Hours;
CREATE INDEX Hours_Index ON Hours(RID, Node_Num);
END// DELIMITER ;

我尝试过的:

代码语言:javascript
复制
$mysql -u $_adminuser -h $_host -Bse "USE $_hostdb; $createProc;"

其中$createProc是创建过程的代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-26 03:41:00

将您的过程存储在文件procedure.sql中,尝试执行以下操作。它通过在命令行上指定数据库来消除USE语句:

代码语言:javascript
复制
$mysql --batch --silent -u $_adminuser -h $_host $_hostdb < procedure.sql
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5782385

复制
相关文章

相似问题

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