・既存のデータベース中にどんなテーブルがあるか調べる
SHOW TABLES で、データベース内のあるテーブル名のリストが取れる。
mysql> SHOW TABLES;
+------------------------------------------+
| Tables_in_usodb |
+------------------------------------------+
| attacker_ahoaho |
| abyorn_hogehoge |
:
+------------------------------------------+
206 rows in set (0.01 sec)
mysql>
・テーブルのCREATE文を取得する
SHOW CREATE TABLE (tbl_name) で、そのテーブルのCREATE文が取れる。
mysql> SHOW CREATE TABLE zenra_config\G
*************************** 1. row ***************************
Table: zenra_config
Create Table: CREATE TABLE `zenra_config` (
`zenraid` varchar(64) CHARACTER SET sjis COLLATE sjis_bin NOT NULL,
`title` varchar(512) CHARACTER SET sjis COLLATE sjis_bin DEFAULT NULL,
`text` mediumblob,
`remark` varchar(512) CHARACTER SET sjis COLLATE sjis_bin DEFAULT NULL,
PRIMARY KEY (`zenraid`),
CONSTRAINT `fk_znrcfg_aid` FOREIGN KEY (`zenraid`) REFERENCES `zenra_pri` (`zenraid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=sjis
1 row in set (0.00 sec)
mysql>
・というわけで、この2つを使ってこんなスクリプトを書けば、データベース内のテーブルのCREATE文を浚ってくれる。
#!/bin/sh
# mysqlコマンドと引数
SCRIPT_MYSQL="mysql -p[YOUR_PASS] -u [YOUR_NAME] [YOUR_DB]"
# 出力ファイル
FILE_CREATES=tablecreatesql.txt
rm -f ${FILE_CREATES}
for t in `echo "SHOW TABLES" | ${SCRIPT_MYSQL}`
do
echo "SHOW CREATE TABLE $t\G" | ${SCRIPT_MYSQL} >> ${FILE_CREATES}
done
▼レンタルサーバー・VPS比較表を見る▼