我有一个很大的SQL-Dump,有很多语句,比如
CREATE TABLE ...
INSERT INTO ...
等等。
我想编辑此文件。首先,我想删除所有属性的“CREATE TABLE”语句。我只想要“INSERT INTO”语句。有一个简单的方法吗?我是这个地区的新秀。
所有“INSERT INTO”语句如下所示:
INSERT INTO 'xyz' VALUES (a, b, c, d), (e, f, g, h), (c,d,e,g) ...
我想在最后这样做:
INSERT INTO 'xyz' VALUES (<tenant_id>, a, b, c, d), (<tenant_id>, e, f, g, h), ...
有没有一种简单的方法可以实现这一点?例如。使用PHP还是Regex?我怎么能这样做? 谢谢!
答案 0 :(得分:0)
如果您有权访问任何类似unix的系统,我建议您这样做:
sed '/CREATE TABLE */d' current.dump > new.dump
它将删除所有创建表行并将其余部分传递给新的转储文件
答案 1 :(得分:0)
参见示例10“显示与http://www.thegeekstuff.com/2009/03/15-practical-unix-grep-command-examples/
中所有给定模式不匹配的行”Syntax:
grep -v -e "pattern" -e "pattern"
e..g。
grep -v -e "CREATE TABLE" current.dump > new.dump
假设CREATE TABLE语句在一行上。
对于Windows,您可以使用grep命令的各种端口,例如http://stefanstools.sourceforge.net/grepWin.html