我想知道在mysql中创建表时是否可以设置“过期”时间或日期。
例如,创建一个表,并在2小时内过期/自动删除。这样的效果。谷歌没有给出任何答案,所以它可能并不像我希望的那么简单。
需要: 我正在制作一个带有购物车功能的网站。如果用户未登录,则用户可以将项目添加到购物车。此信息存储在临时表中,然后在他们登录后将其迁移到特定用户表或订单。我试图找到一种方法来删除临时表如果说用户从未登录或完成订单然后永久离开该站点。这样我就不会因为一堆临时表而变得混乱。
答案 0 :(得分:4)
你做错了!当您动态更改架构时,几乎总是一个错误。您应该添加和删除行,而不是表。
将所有订单放在同一张表中,然后将它们加上时间戳。您可以拥有一个包含订单状态的字段,并使用DELETE ... WHERE status='not completed' AND timefield < DATE_SUB(NOW(), INTERVAL 2 HOUR)
删除未完成的订单,或者您可以将临时订单放在另一个表中,而不是已完成的订单,但所有临时订单都应该转到相同的表。
答案 1 :(得分:0)
问:我想知道是否可以设置“过期”时间或日期 在mysql中创建表时。
答:很容易设置“添加”时间或日期,然后运行批处理作业来查询超过“过期”时间的任何/所有项目并采取相应的操作。也许删除。也许通过电子邮件发送提醒。也许生成报告并删除 - 无论如何。