Я не MySQL эксперт, но я использую его с Java программой, которую я пишу. Это часть сценария, который я написал. Он отлично работает в DataGrip, но когда я пытался вызвать его из моей Java программы с ScriptRunner, он не работал. Поэтому я вставил код в MySQL верстак, чтобы посмотреть, что случилось. Очевидно, мне не нравится, когда в моей процедуре используется более одного оператора DECLARE. Любая помощь будет принята с благодарностью.
DROP PROCEDURE IF EXISTS create_fake_stock_data;
CREATE PROCEDURE create_fake_stock_data()
BEGIN
DECLARE counter INT DEFAULT 0;
DECLARE appl_price DECIMAL(8,2) DEFAULT 100.34;
DECLARE goog_price DECIMAL(8,2) DEFAULT 80.79;
DECLARE amzn_price DECIMAL(8,2) DEFAULT 212.13;
DECLARE quote_date DATETIME DEFAULT '2019-04-01 00:00:00';
WHILE counter < 91 DO
INSERT INTO stocks.quotes (symbol, time, price) VALUES ('APPL', quote_date, appl_price);
INSERT INTO stocks.quotes (symbol, time, price) VALUES ('GOOG', quote_date, goog_price);
INSERT INTO stocks.quotes (symbol, time, price) VALUES ('AMZN', quote_date, amzn_price);
SET quote_date = DATE_ADD(quote_date, INTERVAL 1 DAY);
SET appl_price = appl_price + 1.25;
SET goog_price = goog_price + 0.83;
SET amzn_price = amzn_price + 1.02;
SET counter = counter + 1;
END WHILE;
END;
CALL create_fake_stock_data();