在我的数据库中,我有大量包含日期的表。准确地说,这些是到期日期。
目前,我使用以下命令来删除任何早于指定日期的行:
DELETE FROM tablename WHERE DATE(datepoint) < '2019-03-18'1)有没有一种方法可以在整个数据库中搜索和删除,而不是每次手动更改表名并运行命令?
发布于 2019-03-18 19:27:46
你可以使用PHP函数,不管怎样,我不建议删除任何记录,只过滤最近3个月的查询
发布于 2019-03-18 19:37:50
也许可以考虑在他们自己的表EXPIRY_DATES中设置过期日期。这听起来像是你的领域中一个重要的概念。然后让您的其他表使用外键指向正确的过期日期。当您从EXPIRY_DATES中删除一个过期日期时,使用on delete cascade rules from EXPIRY_DATES将清除所有子表中的记录。
发布于 2019-03-18 19:40:33
你应该使用过程(或函数):
定义一个过程:
mysql> CREATE PROCEDURE delete_from_table(OUT table_name char(20))
-> BEGIN
-> delete from table_name WHERE DATE(datepoint) < '2019-03-18';
-> END//
mysql> delimiter ;调用过程:
mysql> CALL delete_from_table(@table1);
mysql> CALL delete_from_table(@table2);
mysql> CALL delete_from_table(@table3);https://stackoverflow.com/questions/55220168
复制相似问题