1
我正在使用Mac OSX的安裝腳本,並且正在使用shell腳本來創建數據庫以及我需要的程序使用的所有表。我面臨的問題是創建我們需要的程序。我嘗試過多種實現方式,並想知道是否有人知道一個例子或者是否有可能。以下是我所瞭解的程序。我將不勝感激任何幫助。用於創建過程的MySQL Shell腳本
的過程:
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 ;
我試了一下:
$mysql -u $_adminuser -h $_host -Bse "USE $_hostdb; $createProc;"
其中$ createProc是代碼來創建程序。
儘管不在.sql文件中的任何方式?自生成安裝程序包後,我無法訪問目錄。 – ars265 2011-04-25 19:47:37
我懷疑你的問題是由於shell轉義'\\\'和';'造成的。如果您將字符串中的所有字符都轉義出來,則將其作爲帶'-e'的字符串調用可能會起作用。但不知道。 – 2011-04-25 20:03:09
實際上,我發現了一種編輯安裝程序包來保存.sql文件的方法,以便您的解決方案運行良好。感謝您的幫助。 – ars265 2011-04-25 22:18:26