基于记录计数比较创建表

时间:2019-06-19 23:05:51

标签: mysql sql mysql-workbench

我正在创建一个MySQL存储过程,该存储过程将删除/创建一个backup表,并插入actual表中的值。该backup表具有与actual表完全相同的表结构。

但是,如果来自backup表> actual表的记录数,我只希望删除并创建此backup表。

每天早上,actual表都会通过ETL加载数据。该表存储历史记录,因此为什么要创建备份。

下面的代码适用于actual表> backup表的记录计数。

CREATE DEFINER=name PROCEDURE Create Backup Table()<br/>
BEGIN

DROP TABLE IF EXISTS BackupTable;

CREATE TABLE BackupTable(
column1, datatype
column2, datatype
etc.
);

INSERT INTO BackupTable
SELECT * FROM ActualTable
WHERE (SELECT COUNT(*) FROM ActualTable) > (SELECT COUNT(*) FROM BackupTable)

END

但是,如果在actual表的加载导致部分数据发生的情况下,backup表将被清除干净-因为在这种情况下, backup表> actual表。

我一直坚持如何解决这个问题。

0 个答案:

没有答案