バッチ処理結果をカスタマイズする。

–html HTMLフォーマット出力 (-H)
–xml XMLフォーマット出力 (-X)
–verbose 詳細表示(-v , -vv, -vvv) (-v)
–table TABLE形式で出力 (-t)
–skip-column-names カラムを表示しない (-N)
–columun-names カラムを表示
–execute=name 指定したクエリーを実行する (-e)
–force エラーを無視して続行 (-f)

[root@colinux ~]# ls
backupfiles mysql–help.txt select_batch1.sql
[root@colinux ~]# mysql test < select_batch1.sql -p --html > select_batch1.html
Enter password:
[root@colinux ~]# cat select_batch1.html

< TD>SHOW WARIN
idnamecomment
1test update
2SHOW WARIN
22222222222
3select_limtest 20090117
4select_limtest 20090117
5s
elect_lim
test 20090117
6select_limte
st 20090117
7select_limtest 20090117
8select_limtest 20090117
9s
elect_lim
test 20090117

[root@colinux ~]#

[root@colinux ~]# mysql test < select_batch1.sql -p --table > select_batch1.txt
Enter password:
[root@colinux ~]# cat select_batch1.txt
+—-+————+—————+
| id | name | comment |
+—-+————+—————+
| 1 | SHOW WARIN | test update |
| 2 | SHOW WARIN | 22222222222 |
| 3 | select_lim | test 20090117 |
| 4 | select_lim | test 20090117 |
| 5 | select_lim | test 20090117 |
| 6 | select_lim | test 20090117 |
| 7 | select_lim | test 20090117 |
| 8 | select_lim | test 20090117 |
| 9 | select_lim | test 20090117 |
+—-+————+—————+
[root@colinux ~]#

[root@colinux ~]# mysql test < select_batch1.sql -p -vvv Enter password: -------------- select * from test.T1 -------------- +----+------------+---------------+ | id | name | comment | +----+------------+---------------+ | 1 | SHOW WARIN | test update | | 2 | SHOW WARIN | 22222222222 | | 3 | select_lim | test 20090117 | | 4 | select_lim | test 20090117 | | 5 | select_lim | test 20090117 | | 6 | select_lim | test 20090117 | | 7 | select_lim | test 20090117 | | 8 | select_lim | test 20090117 | | 9 | select_lim | test 20090117 | +----+------------+---------------+ 9 rows in set (0.00 sec) Bye [root@colinux ~]# [root@colinux ~]# mysql test < select_batch1.sql -p --skip-column-names Enter password: 1 SHOW WARIN test update 2 SHOW WARIN 22222222222 3 select_lim test 20090117 4 select_lim test 20090117 5 select_lim test 20090117 6 select_lim test 20090117 7 select_lim test 20090117 8 select_lim test 20090117 9 select_lim test 20090117 [root@colinux ~]# ■HTMLフォーマット batch_html

■テーブルフォーマット
batch_table_format

■Colums無し (他のバッチ連携などに便利)
batch_no_colum


データが大量にあるテーブルをselectすると、反応が返ってこなくなる
事があります。where句できちんとフィルター出来れば良いけれども
調査の段階ではミスする事もありえるので、こんなオプションを知って
おいても良いかもしれません。

[root@colinux ~]# mysql –help | grep imit
–delimiter=name    Delimiter to be used.
–select_limit=#    Automatic limit for SELECT when using –safe-updates
–max_join_size=#   Automatic limit for rows in a join when using

[root@colinux ~]# mysql -u root -p –prompt=”\u@\h-DB:\d>” –safe-updates –select_limit=3

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.1.30 MySQL Community Server (GPL)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

root@localhost-DB:(none)>use test
Database changed
root@localhost-DB:test>select count(*) from T1;
+———-+
| count(*) |
+———-+
|        9 |
+———-+
1 row in set (0.00 sec)

root@localhost-DB:test>select * from T1;
+—-+————+—————+
| id | name       | comment       |
+—-+————+—————+
|  1 | SHOW WARIN | test update   |
|  2 | SHOW WARIN | 22222222222   |
|  3 | select_lim | test 20090117 |
+—-+————+—————+
3 rows in set (0.00 sec)

root@localhost-DB:test>

–select_limitオプションでMax3件までのデータが表示されています。

select-limit

select-limit


–safe-updatesオプションを指定してDBに接続すると、プライマリーキーを
指定しないとUPDATEやDELETEなどの更新クエリーを実行出来ないように
するオプションです。WHERE句を忘れてデータすべて変更してしまったなど
と焦らないようにする為に良いかもしれません。

[root@colinux mysql5130]# mysql -u root -p --prompt="\u@\h-DB:\d>" --safe-updates
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.1.30 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

root@localhost-DB:(none)>use test
Database changed
root@localhost-DB:test>show tables;
+----------------+
| Tables_in_test |
+----------------+
| T1             |
+----------------+
1 row in set (0.00 sec)

root@localhost-DB:test>select * from T1;
+----+------------+-------------+
| id | name       | comment     |
+----+------------+-------------+
|  1 | SHOW WARIN | 1111111     |
|  2 | SHOW WARIN | 22222222222 |
+----+------------+-------------+
2 rows in set (0.00 sec)

root@localhost-DB:test>

root@localhost-DB:test>update T1 set comment="test update";
ERROR 1175 (HY000): You are using safe update mode and you tried to update a tab
le without a WHERE that uses a KEY column
root@localhost-DB:test>update T1 set comment="test update" where id = 1;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

root@localhost-DB:test>select * from T1;
+----+------------+-------------+
| id | name       | comment     |
+----+------------+-------------+
|  1 | SHOW WARIN | test update |
|  2 | SHOW WARIN | 22222222222 |
+----+------------+-------------+
2 rows in set (0.00 sec)

root@localhost-DB:test>

※primaryキーを指定しないと更新出来ないので、ある程度まとまったデータ
を更新する場合は、BEGIN TRAN ~ COMMIT TRAN/ROLLBACK TRAN
などで処理を戻せるようにする事で対応する事も可能ですね。


MYSQL接続時にプロンプトを変更して自分の接続を状態を把握。

通常接続

[root@colinux mysql5130]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.30 MySQL Community Server (GPL)
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>

PROMPTを変更して接続状態をわかり易くした場合

[root@colinux mysql5130]# mysql -u root -p –prompt=”\u@\h-DB:\d>”
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.30 MySQL Community Server (GPL)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

root@localhost-DB:(none)>use test
Database changed
root@localhost-DB:test>

MYSQL PROMPT

MYSQL PROMPT


SQLコマンドを実行していて、WARNINGが出た場合に警告を確認する方法。

①テストテーブル作成

CREATE TABLE `T1` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(10),
`comment` VARCHAR( 50 ),
PRIMARY KEY ( `id` )
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci
;

②検証用にデータをINSERTしてみる。

mysql> insert into T1(name,comment) values(‘SHOW WARINING’,’1111111′);
Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> show warnings;
+———+——+——————————————-+
| Level   | Code | Message                                   |
+———+——+——————————————-+
| Warning | 1265 | Data truncated for column ‘name’ at row 1 |
+———+——+——————————————-+
1 row in set (0.00 sec)

mysql> select * from T1;
+—-+————+———+
| id | name       | comment |
+—-+————+———+
|  1 | SHOW WARIN | 1111111 |
+—-+————+———+
1 row in set (0.00 sec)

③ –show-warningsオプション付きで接続してみる。

[root@colinux ~]# mysql -u root -p –show-warnings
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.1.30 MySQL Community Server (GPL)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> use test
Database changed
mysql> insert into T1(name,comment) values(‘SHOW WARINING TEST’,’22222222222′);
Query OK, 1 row affected, 1 warning (0.01 sec)

Warning (Code 1265): Data truncated for column ‘name’ at row 1
mysql> select * from T1;
+—-+————+————-+
| id | name       | comment     |
+—-+————+————-+
|  1 | SHOW WARIN | 1111111     |
|  2 | SHOW WARIN | 22222222222 |
+—-+————+————-+
2 rows in set (0.00 sec)

mysql>


サイト管理者に便利なIEキャプチャーツール

自分で管理しているサイトの表示がおかしい?若しくは,他の人にサイトにアクセスせずにサイト情報
をシェアする為に使用可能です。(.htmに保存出来ないサイトもキャプチャー可能)
サイト管理者には結構便利で使えるツールだと思います。

http://www.craftec.co.jp/captureit/toolbar.html

 

capture.jpg