mysqldumpをオプションなしで実行すると、標準出力にテーブル定義のcreate文とinsert文が出力されます。
insert文だけを出力するには、-t または --no-create-info オプションを指定します。
$ mysqldump -t DB名 テーブル名
テーブル定義だけを出力するには -d または --no-data オプションを指定します。
$ mysqldump -d DB名 テーブル名
テーブル定義だけを出力する方法として、-w でダンプするデータの条件が偽になるようにするという手もあります。
$ mysqldump DB名 テーブル名 -w '0=1'
さらに意味のない方法ですが、show create table を使って create 文を出力することもできます。
show create table は以下のようにテーブル定義を出力します。
mysql> show create table id;
+-------+---------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------+
| id | CREATE TABLE `id` (
`id` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+---------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
-s でカラム名を抑制し、-r でエスケープ文字をそのまま出力するようにして、2カラム目だけを cut コマンドで出力します。
$ echo "show create table テーブル名;" | mysql DB名 -s -r
CREATE TABLE `id` (
`id` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
mysqldump -d を使えば、こんな面倒なことはしなくていいんですが。
insert文だけを出力するには、-t または --no-create-info オプションを指定します。
$ mysqldump -t DB名 テーブル名
テーブル定義だけを出力するには -d または --no-data オプションを指定します。
$ mysqldump -d DB名 テーブル名
テーブル定義だけを出力する方法として、-w でダンプするデータの条件が偽になるようにするという手もあります。
$ mysqldump DB名 テーブル名 -w '0=1'
さらに意味のない方法ですが、show create table を使って create 文を出力することもできます。
show create table は以下のようにテーブル定義を出力します。
mysql> show create table id;
+-------+---------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------+
| id | CREATE TABLE `id` (
`id` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+---------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
-s でカラム名を抑制し、-r でエスケープ文字をそのまま出力するようにして、2カラム目だけを cut コマンドで出力します。
$ echo "show create table テーブル名;" | mysql DB名 -s -r
CREATE TABLE `id` (
`id` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
mysqldump -d を使えば、こんな面倒なことはしなくていいんですが。