Русская документация для фриланесеров
Главная arrow Базы данных arrow Как запустить SQL запрос к MySQL из batch файла?  
08.01.2009 г.
Главное меню
Главная
Поиск
PHP
.NET
Java
Ruby
C++
Delphi
Другие языки
Базы данных
Безопасность
Сети
ОС
Мобильные
Теория дизайна
WEB
Разное
Админцентр



Интернет магазин купить элитные приставки Гейм бой, обои. сдать квартиру: агенства сдать квартиру на сайте.

Как запустить SQL запрос к MySQL из batch файла? Печать E-mail
Автор Westry   
06.02.2008 г.

В статье описана работа с MySQL монитором  на примере изменения поля таблицы

Задача

 есть таблица altertest в базе данных test со следующей структурой:


(at_id int not null,
at_ab varchar(255),
at_email varchar(255)
);
нужно сделать так чтобы  поле at_id каждый раз увеличивалось на 1 при добавлении новой записи в таблицу. (другими словами стало автоинкрементным) .

Примечание 

Для тестирования SQL запросов вы можете создать файл с именем "1.sql" , и запускать его 

с помощью программы mysql.exe (mysql монитор) командой

mysql --database test --execute "\. 1.sql"   

например из под FAR  , для Windows клиента, или прямо из под вашего SHELL  . Естественно если вы подключаетесь к удаленному (а не localhost) серверу вам следует использовать ключи командной строки mysql.exe отвечающие за подключение 

Например так : mysql --user=softm --password=35arsen --host=192.168.11.2 --database test --execute "\. 1.sql"

 

Решение 

Примените SQL запрос : ALTER TABLE


#-----Файл 1.sql-----
#Убить таблицу если существовала 
drop TABLE IF EXISTS altertest;

#Создаем таблицу
CREATE TABLE altertest
(at_id int not null,
at_ab varchar(255),
at_email varchar(255)
);

#Добавить записи в таблицу
insert into altertest (at_ab,at_email) values ("about 1"," Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script ");
insert into altertest (at_ab,at_email) values ("about 2"," Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script ");

#Вывести записи из таблицы
select * from altertest;
#-----Конец файла 1.sql-----

Итак для создания таблицы и ее тестирования mysql --database test --execute "\. 1.sql" 

Получаем на выходе :

at_id at_ab at_email
0 about 1 Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
0 about 2 Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script

Для изменения таблицы выполняем  команду 

ALTER TABLE altertest MODIFY at_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT; 

занесем ее в файл 2.sql после создания таблицы но перед вставкой в нее новых элементов:

#-----Файл 2.sql-----
#пытаемся изменить таблицу
ALTER TABLE altertest MODIFY at_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT; 

#Добавить записи в таблицу
insert into altertest (at_ab,at_email) values ("about 1"," Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script ");
insert into altertest (at_ab,at_email) values ("about 2"," Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script ");

#Вывести записи из таблицы
select * from altertest;
#-----Конец файла 2.sql-----

Результат вывода будет выглядеть вот так

at_id at_ab at_email
1 about 1 Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
2 about 2 Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
3 about 1 Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
4 about 2 Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script

То есть наш запрос успешно работает .

Послесловие :

Как видите с базой данных MySQL можно успешно работать из batch файлов и shell скриптов , что делает ее необічайно гибкой в использовании.

Арсен Кириллов г.Львов 2001 г. Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script

 
« Пред.   След. »
Webdesign by Webmedie.dk Webdesign by Webmedie.dk