Можете ли вы создать общий сценарий, который не является хранимой процедурой? - PullRequest
0 голосов
/ 02 октября 2009

У меня есть некоторый опыт работы с SQL Server 2005, и я написал много скриптов, в которых просто есть оператор BEGIN и END. Я мог бы использовать логику, такую ​​как циклы, курсоры и т. Д. Однако я не могу сделать это в MySQL без создания хранимой процедуры. Я знаю, что хранимые процедуры в MySQL являются новыми и, возможно, не такими надежными, как в SQL Server, но в любом случае можно просто создать общий сценарий, который, я знаю, я хочу запустить только один раз, поэтому мне не придется возвращаться в свою базу и удалить все эти сохраненные процы позже?

чтобы немного пояснить, что я пытаюсь сделать, это создать скрипт, который создаст несколько тальбов, например

BEGIN 
   CREATE TABLE foo(id INT, data VARCHAR(100)); 
   CREATE TABLE test(t_id INT, data VARCHAR(50)); 
END;

Возможно ли это в MySQL?

Ответы [ 2 ]

1 голос
/ 02 октября 2009

Вам не нужны ключевые слова begin и end в MySQL, будет работать следующее:

CREATE TABLE foo(id INT, data VARCHAR(100));
CREATE TABLE test(t_id INT, data VARCHAR(50));

Вы также можете использовать предложение if not exists, чтобы гарантировать, что вы не получите ошибок, если таблицы уже существуют:

CREATE TABLE IF NOT EXISTS foo(id INT, data VARCHAR(100));
CREATE TABLE IF NOT EXISTS test(t_id INT, data VARCHAR(50));
0 голосов
/ 02 октября 2009

Извините, я понял это. Я пытался запустить скрипт в обобщенном SQL-редакторе вверху, вместо того чтобы перейти на вкладку «Файл» -> «Новый скрипт» и попытаться запустить там скрипт. Спасибо за вашу помощь

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