サンプル
* バッチファイルとして作成してみる
事前準備
* 環境変数 Path に対して、パスを通しておく (デフォルトだったら「C:\Program Files\MySQL\MySQL Server X.X\bin」(X.X:Version)を指定)
sample_sql.bat
REM Use UTF-8 chcp 65001 REM mysql -u <UserName> -p<password> -h <host> <db name> < <SQL file> mysql -u root -ppassword -h localhost sampledb < create_delete.sql mysql -u root -ppassword -h localhost sampledb < input.sql REM Use Shift_JIS chcp 932
create_delete.sql
-- Dumping structure for テーブル sampledb.employee CREATE TABLE IF NOT EXISTS `employee` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `birth_date` date NOT NULL, `section_id` bigint(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='従業員'; DELETE FROM employee; ALTER TABLE employee AUTO_INCREMENT = 1;
input.sql
INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('Mike', '1982-11-22', 1); INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('Tom', '1973-01-02', 2); INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('Smith', '1939-04-15', 3); INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('Chris', '1949-12-31', 3); INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('John', '1976-09-19', 4); INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('Alan', '1899-12-22', 1); INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('Cindy', '1961-08-01', 2); INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('Ken', '1945-10-21', 3); INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('Cassie', '1933-11-11', 3); INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('Brian', '1976-09-19', 4);
トラブルシューティング
日本語を使うと文字化けする
* バッチで、以下のように、日本語を使うと文字化けする。 【例】 INSERT INTO `employee` (`name`, `birth_date`, `section_id`) VALUES ('あい', '1976-09-19', 4); 【原因】 * コマンドプロンプトのデフォルトの文字コードが「Shift-JIS」に対して、 SQLファイルの文字コードが「UTF-8」だった場合に文字化けを起こす 【解決策】 * コマンドプロンプトの文字コードをUTF-8にするために「chcp 65001」を実行する
参考文献
http://xwave.exblog.jp/6555397/http://dqn.sakusakutto.jp/2011/08/mysql_shellscript.html
動画
http://dotinstall.com/lessons/basic_mysql_v2/7418