【发布时间】:2017-05-03 16:21:42
【问题描述】:
我有一个问题,我需要使用以下方法从 MYSQL 复制表:
CREATE TABLE newtable LIKE oldtable;
INSERT newtable SELECT * FROM oldtable;
我需要每周删除该表并重新创建它们,因为我不想丢失原始数据。 谁能帮我找到一个可以自动完成的解决方案。我真的不知道
【问题讨论】:
标签: mysql auto-generate
我有一个问题,我需要使用以下方法从 MYSQL 复制表:
CREATE TABLE newtable LIKE oldtable;
INSERT newtable SELECT * FROM oldtable;
我需要每周删除该表并重新创建它们,因为我不想丢失原始数据。 谁能帮我找到一个可以自动完成的解决方案。我真的不知道
【问题讨论】:
标签: mysql auto-generate
如果您有一个 java 程序,其中您有 MySQL 查询并让查询通过 cron job 定期自动执行。
您可以在其中运行两个单独的线程,或者您可以在它自己的同一个线程中执行它。即,将INSERT 执行到新表中,然后也许您可以简单地删除旧表。
或者你可以选择MySQL Event Scheduler。这个SO 几乎解释了根据您的要求进行此操作的有效方法。
【讨论】:
您可以将MySQL EVENT Scheduler 用于此目的,如下所示。您也可以考虑改用CREATE TABLE AS(CTAS) 构造
delimiter |
CREATE EVENT myevent
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 WEEK
DO
BEGIN
DROP TABLE IF EXISTS newtable;
CREATE TABLE newtable AS
SELECT * FROM oldtable;
END |
delimiter ;
【讨论】: