小编boc*_*phy的帖子

PHP MYSQL 设置自动增量为 MAX + 1

我有一个 PHP 文件,它使用 LOAD DATA INFILE sql 函数将 CSV 文件中的数据插入到 MYSQL DB 中。

如果 CSV 数据重复,则由于数据库表索引规则(唯一),不会插入该数据。

$sql = "LOAD DATA LOW_PRIORITY LOCAL INFILE 
       '" . $makes_file . "' IGNORE 
       INTO TABLE make 
       FIELDS TERMINATED BY ',' 
       LINES TERMINATED BY '\n' (make, img_url)";

$link->query($sql) or die(mysqli_error($link));
Run Code Online (Sandbox Code Playgroud)

由于某种原因,此过程中表的自动增量不正确。

所以我使用下面的代码来纠正这个问题。

$get_max = $link->query("SELECT max(id) as max FROM `make` LIMIT 1");
while ($r = $get_max->fetch_assoc()) {
    $link->query("ALTER TABLE  `make` AUTO_INCREMENT = " . ($r['max'] + 1)) or 
    die(mysqli_error($link));
}
Run Code Online (Sandbox Code Playgroud)

所以如果有人知道:

  1. 为什么 LOAD DATA sql …

php mysql sql csv auto-increment

3
推荐指数
1
解决办法
7676
查看次数

标签 统计

auto-increment ×1

csv ×1

mysql ×1

php ×1

sql ×1