MySQL汇总状态表,用于存储操作结果

时间:2015-08-25 13:18:26

标签: mysql import summary

我的本​​地工作站上有一个MySQL(5.6)数据库,我经常在其中拉大数据集来执行分析。我为每个导入数据的数据集都有一个单独的SQL脚本,并在需要时重新格式化(特别是转换日期格式)。另外,我还有其他脚本可以对数据进行详细分析。

为了保证质量,我希望有一个名为 ImportLog 的表,它存储一条记录来捕获运行的每个导入的结果。该表如下所示:

ImportName    DateRun        RowsImported
----------    -------        ------------
ImportASR     2015-08-29     12902
ImportEAD     2015-08-30     18023
ImportHRData  2015-08-30     122376

ImportLog 的列定义如下:

ImportName    // the name of the script that is run
DateRun       // the date that the script is run
RowsImported  // the count of records imported in the run. 

在每个脚本的最后,将是使用相关数据将一行写入此表的代码。例如,让我们说我在2015年8月29日运行了名为ImportASR的脚本,并导入了12,902条记录。在脚本结束时,我想使用以下内容将一条记录追加到 ImportLog (如上表中的第一条记录):

INSERT INTO ImportLog
    VALUES("ImportASR",$DateRun,$RowCunt);

每次运行其中一个导入脚本时,都会在 ImportLog 表中添加一行,并附带相应的数据。

我的问题是:如何使用当前日期填充$ DateRun变量,如何使用新导入的ASR数据集的行计数$ RowCount变量?或者我是否试图从错误的角度来看待这个问题?

1 个答案:

答案 0 :(得分:0)

今天早上的第一件事我偶然发现了问题的答案;它非常简单,令我惊讶的是它不需要使用任何变量。放在每个导入脚本末尾的代码如下:

INSERT INTO ImportLog
  "Script: ImportASR",
  SELECT NOW(),
  (SELECT COUNT(*) FROM ASR_Full);

InportLog表最初定义如下:

CREATE TABLE LPIS_SearchMatchLog (
  ImportName VARCHAR(25),
  DateRun DATETIME,
  RowCount INT
);

希望这有助于其他人!