用于存储操作结果的MySQL摘要状态表
我在本地工作站上有一个MySQL(5.6)数据库,我经常将大型数据集拉入其中进行分析。对于每个数据集,我都有一个单独的SQL脚本,用于导入数据并在需要时重新格式化(特别是转换日期格式)。此外,我还有其他脚本对数据执行详细分析 为了保证质量,我希望有一个名为ImportLog的表,该表存储一条记录,以捕获运行的每个导入的结果。此表如下所示:用于存储操作结果的MySQL摘要状态表,mysql,import,summary,Mysql,Import,Summary,我在本地工作站上有一个MySQL(5.6)数据库,我经常将大型数据集拉入其中进行分析。对于每个数据集,我都有一个单独的SQL脚本,用于导入数据并在需要时重新格式化(特别是转换日期格式)。此外,我还有其他脚本对数据执行详细分析 为了保证质量,我希望有一个名为ImportLog的表,该表存储一条记录,以捕获运行的每个导入的结果。此表如下所示: ImportName DateRun RowsImported ---------- ------- --------
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的脚本,它导入了12902条记录。在脚本的末尾,我想使用如下方式将一条记录附加到ImportLog(如上表中的第一条记录):
INSERT INTO ImportLog
VALUES("ImportASR",$DateRun,$RowCunt);
每次运行一个导入脚本时,它都会向ImportLog表中添加一行适当的数据
我的问题是:如何用当前日期填充$DateRun变量,用新导入的ASR数据集的行数填充$RowCount变量?还是我试图从错误的角度来看待这个问题?今天早上的第一件事是我偶然发现了问题的答案;它非常简单,令我惊讶的是,它不需要使用任何变量。要放在每个导入脚本末尾的代码如下所示:
INSERT INTO ImportLog
"Script: ImportASR",
SELECT NOW(),
(SELECT COUNT(*) FROM ASR_Full);
InportLog表最初的定义如下:
CREATE TABLE LPIS_SearchMatchLog (
ImportName VARCHAR(25),
DateRun DATETIME,
RowCount INT
);
希望这对其他人有帮助 可能我误解了您的问题-在mysql脚本中应该可以包含CREATETABLE语句。如果你想知道受上一个操作影响的行,你可以使用mysql_infected_rows(),尽管对某些操作有一些限制条件;那有用吗?