是否有可以将列名注释附加到 INSERTed 值的 SQL 格式化程序



我正在寻找一个可以做到这一点的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

最新更新