首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数据库中删除MySQL,其中

从数据库中删除MySQL,其中
EN

Stack Overflow用户
提问于 2019-03-18 19:18:28
回答 3查看 82关注 0票数 1

在我的数据库中,我有大量包含日期的表。准确地说,这些是到期日期。

目前,我使用以下命令来删除任何早于指定日期的行:

代码语言:javascript
复制
 DELETE FROM tablename WHERE DATE(datepoint) < '2019-03-18'

1)有没有一种方法可以在整个数据库中搜索和删除,而不是每次手动更改表名并运行命令?

EN

回答 3

Stack Overflow用户

发布于 2019-03-18 19:27:46

你可以使用PHP函数,不管怎样,我不建议删除任何记录,只过滤最近3个月的查询

票数 1
EN

Stack Overflow用户

发布于 2019-03-18 19:37:50

也许可以考虑在他们自己的表EXPIRY_DATES中设置过期日期。这听起来像是你的领域中一个重要的概念。然后让您的其他表使用外键指向正确的过期日期。当您从EXPIRY_DATES中删除一个过期日期时,使用on delete cascade rules from EXPIRY_DATES将清除所有子表中的记录。

票数 0
EN

Stack Overflow用户

发布于 2019-03-18 19:40:33

你应该使用过程(或函数):

定义一个过程:

代码语言:javascript
复制
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 ;

调用过程:

代码语言:javascript
复制
mysql> CALL delete_from_table(@table1);
mysql> CALL delete_from_table(@table2);
mysql> CALL delete_from_table(@table3);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55220168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档