php - 使用 PHP/MySQL 循环更新当前行

标签 php mysql

我有一个包含超过 1600 万行的 MySQL 表,并且没有主键。每当我尝试添加一个时,我的连接就会崩溃。我尝试在 PHPMyAdmin 和命令行中添加一个作为自动增量,但连接总是在大约 10 分钟后丢失。

我想做的是在 PHP 中循环遍历表的行,这样我就可以限制结果的数量,并为每个返回的行添加一个自动递增的 ID 号。由于减少 MySQL 查询的负载会减少受影响的行数,因此我不会失去连接。

我想做类似的事情

SELECT * FROM MYTABLE LIMIT 1000001, 2000000;

然后,在循环中,更新当前行

UPDATE (current row) SET ID='$i++'

我该怎么做?

我也对 MySQL 解决方案持开放态度。我只需要一个不会导致我失去 MySQL 连接的进程

注意:原始数据以 txt 文件形式提供给我。我不知道是否有重复项,但我无法消除任何行。此外,不会添加任何行。该表仅用于查询目的。然而,当我添加索引时,就没有问题了。

最佳答案

更简单

ALTER TABLE table_name MODIFY COLUMN id INT NOT NULL AUTO_INCRMENT PRIMARY KEY

如果修改后想删除主键

ALTER TABLE table_name MODIFY COLUMN id INT

关于php - 使用 PHP/MySQL 循环更新当前行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35867271/

相关文章:

php - 按自定义数组对行进行排序

php - 为什么我无法从 MySQL 数据库的 View 中显示数据?

mysql - 在 MySQL 或 PostgreSQL 中维护每个项目的大型备份目录表的策略

php - 在 Symfony Doctrine 查询生成器中选择具有 x 标签的产品

php - 将数组元素添加到PHP/使用Array_push值插入变量

php - 我需要帮助在同一个 sql 中显示两次使用 datetime 函数

php - PHP 变量、方法、类等名称中的有效字符是什么?

mysql - 删除/删除的 WordPress 小部件会永远丢失吗?

java - 在 openshift 上连接到 jdbc mysql

MySQL 从两个数据库表中获取最新条目