mysqldump -d でデータベースの定義が吐き出せると思うのですがAUTO_INCREMENT=Xの値が不要です。

定義だけ出す方法を教えてください。

↓の例でいうところの、
AUTO_INCREMENT=2
が不要です。

CREATE TABLE `diary` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`member_id` int(11) NOT NULL,
`title` text NOT NULL,
`body` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2010/12/21 11:55:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント35pt

unix 系の OS だとして、↓ということ?

% mysqldump -d ... | sed -e 's/AUTO_INCREMENT=[0-9]*//'

オプションでも何とかできるのかもしれないけど、削っちゃいたいものがはっきりしてるなら、削った方が面倒が無いかな、なんて。


http://dev.mysql.com/doc/refman/5.1/ja/mysqldump.html

id:typista No.2

回答回数359ベストアンサー獲得回数7

ポイント35pt

http://d.hatena.ne.jp/sakaik/20101029/dangerous_mysqldump

http://kwappa.txt-nifty.com/blog/2010/02/mysql-ebf8.html

MySQL独自オプションを外す指定は可能ですが、ENGINE=InnoDB も一緒に

無くなってしまうので、1番目の回答者の方のようにsedで文字列置換

するほかなさそうです。

ENGINE=InnoDB も一緒に無くなってしまって良いなら

mysqldump -d --skip-create-options

です。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません