下面的代码来自 http://www.sqlite.org/cvstrac/wiki?p=ConverterTools,用于转换MySql语句到SQLite语句。
# mysql2sqlite : Convert MySql statement to SQLite statement
cat mysql.sql |
grep -v ' KEY "' |
grep -v ' UNIQUE KEY "' |
grep -v ' PRIMARY KEY ' |
sed 's/ unsigned / /g' |
sed 's/ auto_increment/ primary key autoincrement/gi' |
sed 's/ smallint([0-9]*) / integer /gi' |
sed 's/ tinyint([0-9]*) / integer /gi' |
sed 's/ int([0-9]*) / integer /gi' |
sed 's/ character set [^ ]* / /gi' |
sed 's/ enum([^)]*) / varchar(255) /gi' |
sed 's/ on update [^,]*//gi' |
perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' |
perl -pe '
if (/^(INSERT.+?)\(/) {
$a=$1;
s/\\'\''/'\'\''/g;
s/\\n/\n/g;
s/\),\(/\);\n$a\(/g;
}
'
也许一段MySql的语句有助于理解上述代码的工作方式
CREATE TABLE IF NOT EXISTS `page_info` ( `id` int(11) unsigned NOT NULL auto_increment, `page` varchar(200) default NULL, `created` datetime default NULL, `updated` datetime default NULL, `creator` varchar(100) default NULL, `tag` varchar(200) default NULL, `title` varchar(250) default NULL, PRIMARY KEY (`id`), UNIQUE KEY `page` (`page`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=141 ;