首页 > 解决方案 > 为什么使用 cron 运行删除查询后 mysql 表 id 更改为降序?

问题描述

我有一个软件,可以从文件中插入 1000 个电话号码(上传文件以在 mysql 表中插入数据)。通过从文件中读取数据,将数据插入到表中。代码:

$handle = fopen("images/".$file_name, "r");

if ($handle) {
    $i=1;
    while (($line = fgets($handle)) !== false) {
        $num=$line;

        mysqli_query($con,"INSERT INTO sms_details (`sms`,`total_mobiles`,`user_id`,`sms_send_date`,`sms_send_time`,`status`,`file_name`,`mobiles`,`sms_count`,`reportname`) VALUES ('".$mobile_txt."','".$count_of_numbers."','".$id."','".$date."','".$date1."','DELIVRD','".$file_name."','".$num."','".$sms_count."','".$reportname."')");

    }

    fclose($handle);

现在我需要自动从数据库中删除 7 天前的数据,所以我为此设置了一个 cron。删除 7 天前数据的代码是:

$date = date("Y-m-d", strtotime('-7 day'));

$qry=mysqli_query($con,"DELETE FROM sms_details WHERE `sms_send_date` < '".$date."'")
or die(mysqli_error($con));

这工作正常。但是当我尝试插入新记录时,即上传带有数字的新文件以插入新数据时,ID 顺序(设置为主键和自动增量且顺序为 ASC)自动更改为 mysqli 表中的降序(phpmyadmin)。换句话说,新记录带有递减的 id 。

这是我的mysqli表结构

这是我的mysqli表结构

这是运行 cron 以从表中删除 7 天前的记录之前的 id 顺序

这是运行 cron 以从表中删除 7 天前的记录之前的 id 顺序

这是运行 cron 以从表中删除 7 天前的记录后的 id 订单

这是运行 cron 以从表中删除 7 天前的记录后的 id 订单

请告诉我为什么会发生这种情况以及解决此问题的方法是什么?

标签: phpmysqli

解决方案


推荐阅读