到目前为止我得到了这个:
$ bzcat mysqldump.pplware.sql.bz2 | grep -A 10 "^CREATE TABLE.*"
CREATE TABLE `wp_ak_twitter` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tw_id` varchar(255) NOT NULL,
`tw_text` varchar(255) NOT NULL,
`tw_reply_username` varchar(255) DEFAULT NULL,
`tw_reply_tweet` varchar(255) DEFAULT NULL,
`tw_created_at` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `tw_id` (`tw_id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
--
CREATE TABLE `wp_audit_trail` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`operation` varchar(40) NOT NULL DEFAULT '',
`user_id` int(11) NOT NULL,
`ip` int(11) unsigned NOT NULL DEFAULT '0',
`happened_at` datetime NOT NULL,
`item_id` int(11) DEFAULT NULL,
`data` longtext,
`title` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9442523 DEFAULT CHARSET=latin1;
..等等。 但是10行限制是任意的,一些CREATE TABLES更短,有些更长。如何获得所有完整的CREATE TABLE定义?
答案 0 :(得分:1)
如何在模式之间打印行:CREATE TABLE
和;
分号: -
bzcat mysqldump.pplware.sql.bz2 | awk '/CREATE TABLE/{f=1}/\;/{f=0}f||/\;/'
OR
bzcat mysqldump.pplware.sql.bz2 | awk '/CREATE TABLE/,/\;/'
答案 1 :(得分:0)
如何在没有数据的情况下获取定义:
mysqldump ... --no-data ...
(当然,这不会回答问题的问题,但可能在某些情况下提供了一个简单的解决方案。)