php - 如何编辑巨大的 SQL 转储?

标签 php sql regex edit mysql

我有一个巨大的 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 或正则表达式?我怎样才能做到这一点? 谢谢你!

最佳答案

如果你可以访问任何类似 UNIX 的系统,我推荐这个:

sed '/CREATE TABLE */d' current.dump > new.dump

它将删除所有创建表行并将其余内容通过管道传输到新的转储文件

关于php - 如何编辑巨大的 SQL 转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24670674/

相关文章:

javascript - 关联变量及其 ID 的最佳方式

sql - 删除重复的子查询

java - 正则表达式 - 匹配模式与值列表

php - 向 Apache 和 PHP 公开环境变量

PHP基于子字符串对数组进行双重排序

sql - PostgreSQL、MySQL——冗余更新/插入/删除优化

c# - 需要有关 Regex 的帮助以从字符串中提取邮政编码

regex - 如何将所有子域 url 重定向到主域

php - 需要面向对象设计的建议 : a collection of items

php - 查找多个插入查询的 auto_increment 值