Как передать один и тот же вход всем файлам SQL только один раз в начале? - PullRequest
0 голосов
/ 12 декабря 2008

Я вызываю 4-5 сценариев из файла одновременно. Но мне нужно дать только один вход для файла в первом sql, который я вызываю.

Эти входные данные будут входными данными для всех остальных файлов sql, которые я вызвал после первого.

Есть ли способ сделать это?

, пожалуйста, помогите.

Ответы [ 4 ]

1 голос
/ 12 декабря 2008

Я думаю, что вы можете достичь того, что вы хотите, используя утилиту sqlcmd и переменные сценариев . Последняя ссылка гласит, что вы также можете использовать переменные окружения.

0 голосов
/ 12 декабря 2008

Задумывались ли вы об использовании хранимой процедуры для этого. Конечно, это зависит от наличия версии MySQL 5.0 (или более поздней). Но это позволяет вам определять переменные и использовать их в рамках процедуры, очень гибко и очень интересно! Предостережение, я не проверял это сам, мой опыт был с Oracle PL / SQL, но концепции похожи.

Тогда вы можете делать такие вещи (из бюллетеня MySQL по адресу:

http://www.mysql.com/news-and-events/newsletter/2004-01/a0000000297.html

DELIMITER // [1]

CREATE PROCEDURE payment [2]
(payment_amount DECIMAL(6,2),
payment_seller_id INT)
BEGIN
DECLARE n DECIMAL(6,2);
SET n = payment_amount - 1.00;
INSERT INTO Moneys VALUES (n, CURRENT_DATE);
IF payment_amount > 1.00 THEN
UPDATE Sellers
SET commission = commission + 1.00
WHERE seller_id = payment_seller_id;
END IF;
END;
//
0 голосов
/ 12 декабря 2008

нет START fbm.sql START fba.sql START fei.sql START fbe.sql START fae.sql START tfat.sql НАЧАТЬ ins_FBH.sql это код.

в fbm.sql У меня есть вход, как счет id = '& 1'. также у меня есть тот же ввод идентификатора счета в других sql.

но когда я запускаю мастер sql, он запускает fbm.sql и запрашивает ввод идентификатора счета. Предположим, я задаю его как 'ABC' и снова после завершения этого fbm.sql он снова запросит ввод идентификатора счета для fba.sql, который я не хочу давать снова n. Ват я хочу, чтобы этот fba.sql и другие соответствующие sql-ы принимали идентификатор счета-фактуры как «ABC», а я не вводил его.

0 голосов
/ 12 декабря 2008

Вы имеете в виду:

query2 основан на результате query1, запрос3 основан на результате запроса2 и т. д ...

Если это так, вы можете использовать представления для

create view view1 as select * from table1;
create view view2 as select * from view2;
create view view3 as select * from view3;
create view view4 as select * from view4;
select * from view4

Конечно, вы должны сами добавить предложение where.

См. Больше на представлениях http://dev.mysql.com/doc/refman/5.0/en/create-view.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...