当在表中不断添加和删除记录时,如何防止MYSQL中的自动增量索引的值达到天文数字?如何防止它无限增加直到达到字段的大小限制?目前,我是通过在每次添加记录时删除并重新添加索引列来实现的,但是我担心当同时有多个表用户时,这可能会引起问题。我希望将表的大小保持在最近的30条记录中,因此,每次添加新记录时,我都会删除id = 1的记录,然后删除并重新添加索引列以重置索引。没有使用索引值的外键或其他代码,因此更改索引值和行之间的关联并不代表问题。这是我当前的php代码:
if ($count > 30) {
$sql = "DELETE FROM news WHERE id=1";
if (mysqli_query($con, $sql)) {
}
$deletecolumn= mysqli_query($con,"ALTER TABLE news DROP id");
$added= mysqli_query($con,"ALTER TABLE news ADD id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;");
}
有更好的方法吗?
可能最好根据数据创建一个HASH并将其用作密钥。要保持前30名,您需要一个时间戳。添加一个后,您可以删除最旧的。您可以运行cron来删除最旧的。