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