我正在寻找一个可以做到这一点的SQL格式化程序:
INSERT INTO MyTable (col1, col2, col3, col4)
VALUES (
1, -- col1
2, -- col2
3, -- col3
4 -- col4
)
我似乎在任何免费的在线SQL格式化程序中都找不到此功能,尽管可能是我看得不够努力 - 因此问题。肯定存在这样的事情 - 或者如果不是,它看起来很简单,我很想尝试自己写一个......
对于任何不相信这样做的价值的人来说,这里是(许多)实际插入之一 - 如果没有内联注释,很难说出这些值代表什么(并且每行有一个值也很有用):
INSERT INTO ForecastAcqControl
( ForecastImageServiceId, LayerId, Style, IsForecast, IsTiled,
LatSW, LongSW, LatNE, LongNE, PixelsWidth, PixelsHeight, ZoomLevels,
TimeCoverageHours, TimeStepMinutes, UpdateIntervalMinutes, CreatedDT
)
VALUES
(
1, -- ForecastImageServiceId: OBSERVATIONS
1, -- LayerId: RADAR_UK_Composite_Highres
NULL, -- Style
FALSE, -- IsForecast
FALSE, -- IsTiled
47, -- LatSW
-15, -- LongSW
61, -- LatNE
5, -- LongNE
1000, -- PixelsWidth
1200, -- PixelsHeight
4, -- ZoomLevels
-2, -- TimeCoverageHours
5, -- TimeStepMinutes
5, -- UpdateIntervalMinutes
UTC_TIMESTAMP() -- CreatedDT
);
自己创建一个实用程序来做这件事了。(回想起来,正则表达式可能不是最好的方法——但最终还是做到了!
该工具在这里:SQL插入注释器
已经做了相当多的测试,但肯定会有一些东西不起作用,所以如果有人尝试它可以让我知道任何问题,我们将不胜感激......
我从未见过任何用户环境可以执行如此特定的自定义格式。
您可能最好使用不同的语法来实现类似的效果......
INSERT INTO
ForecastAcqControl (
ForecastImageServiceId, LayerId, Style, IsForecast, IsTiled, LatSW,
LongSW, LatNE, LongNE, PixelsWidth, PixelsHeight, ZoomLevels, TimeCoverageHours,
TimeStepMinutes, UpdateIntervalMinutes, CreatedDT
)
SELECT
ForecastImageServiceId = 1,
LayerId = 1,
Style = NULL,
etc, etc
但是您仍然被迫手动采用这种做法。
MSSQL允许这样做,如果你像这样格式化:
INSERT INTO MyTable (col1, col2, col3, col4)
VALUES (
1 -- col1
,2 -- col2
,3 -- col3
,4 -- col4
)
您可以通过以下方式MySql
执行上述操作:
INSERT INTO MyTable (col1,col2,col3,col4)
values('1' #col1
,'2' #col2
,'3' #col3
,'4' #col4
);
我已经在sqlfiddle中进行了测试。查看 http://sqlfiddle.com/#!2/88eb8/1