Создать таблицу на основе сравнения количества записей - PullRequest
0 голосов
/ 20 июня 2019

Я создаю хранимую процедуру MySQL, которая удаляет / создает таблицу backup и вставляет значения из таблицы actual.Эта таблица backup имеет ту же структуру таблицы, что и таблица actual.

Однако я хочу, чтобы эта таблица backup была удалена и создана только в том случае, если количество записей из таблицы actual>таблица backup.

Каждое утро в таблицу actual загружаются данные через ETL.В этой таблице хранятся исторические записи, поэтому я хочу создать резервную копию.

Приведенный ниже код прекрасно работает, когда количество записей в таблице actual>> 1016 *.

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 таблица.

Я застрял на том, как подойти к этому.

...