我正在将一些 BDD 迁移到新结构,我需要对结构进行一些更改。为此,我首先使用插入命令进行备份,并使用 sublimetext2 和RegReplace创建一些脚本来调整插入。
我遇到的问题是当我需要删除列的值之一并且某些数据是可以在多行中的文本并且我有多个插入时。
我正在使用这个正则表达式:
(.*table.*VALUES \(.*,)(.*,)(([\s\S]*,){12})(.*;)
Replace by: \1\3\5
这是数据:
INSERT INTO table (cola, colb, colc, cold, cole, colf, colg, colg, colh, coli, colj, colk, coll, colm, coln, colo, colp, colq, colr, cols, colt, culu) VALUES (1, '2', 3, NULL, '5', 6, '7', '8', 9, NULL, NULL, 12, '13', '14', '15', '16', '17', '18', '19', 20, '21', 22');
INSERT INTO table (cola, colb, colc, cold, cole, colf, colg, colg, colh, coli, colj, colk, coll, colm, coln, colo, colp, colq, colr, cols, colt, culu) VALUES (1, '2', 3, NULL, '5', 6, '7', '8', 9, NULL, NULL, 12, '13', '14', '
15
', '16', '17', '18', '19', 20, '21', '22');
如果我只使用一行正则表达式,它将消除列号9,但是当我在 sublimetext2 中对其进行编码或同时输入两行或更多行时,它将不起作用,因为它不会将两个 INSERT INTO 语句分开。
谢谢你的帮助 :)