删除 SQL 文件中的列
我有一个很大的 SQL 文件 (~ 200MB),其中包含大量 INSERT
指令:
insert into `films_genres`
(`id`,`film_id`,`genre_id`,`num`)
values
(1,1,1,1),
(2,1,17,2),
(3,2,1,1),
...
How can I remove orignoring columns id
, num
in the script ?
I have a big SQL file (~ 200MB) with lots of INSERT
instructions:
insert into `films_genres`
(`id`,`film_id`,`genre_id`,`num`)
values
(1,1,1,1),
(2,1,17,2),
(3,2,1,1),
...
How could I remove or ignore columns id
, num
in the script?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最简单的方法可能是完全插入到临时保留表中,然后将所需的列从保留表插入到实际表中。
Easiest way might be to do the full insert into a temporary holding table and then insert the desired columns into the real table from the holding table.
创建表#MyTempTable(id int,film_idsmallint,genre_id int,num int)
插入#MyTempTable(
id
,film_id
,genre_id
,<代码>num)[此处数据]
insert intofilms_genres (
film_id
,genre_id
) 从 #MyTempTable下拉表 中选择
film_id
,genre_id
#MyTempTableCREATE TABLE #MyTempTable (id int,film_id smallint, genre_id int, num int)
INSERT INTO #MyTempTable (
id
,film_id
,genre_id
,num
)[Data goes here]
insert into films_genres (
film_id
,genre_id
) selectfilm_id
,genre_id
from #MyTempTabledrop table #MyTempTable
这个 Perl 一行代码应该可以做到这一点:
它在适当的位置编辑文件,但创建一个扩展名为 .bak 的备份副本。
或者,如果您更喜欢 Ruby:
This Perl one-liner should do it:
It edits the file in place, but creates a backup copy with the extension .bak.
Or if you prefer Ruby: