我正在尝试将客户迁移到新的数据库结构。
我编写了一个 PHP 脚本,它遍历每条记录并确定该客户在数据库中是否有重复项。如果出现多次,我会更新链接到该客户的所有其他表,并将其链接的 customerID 更新为该客户的最新版本。
我面临的问题是,通过在浏览器中加载 migrate.php 来运行此脚本需要很长时间,以至于在运行它时会出现超时 504,即使我运行以“A”开头的客户名称的查询。然后更改为“B”并运行脚本,然后更改为“C”并运行脚本等...(无论如何都需要永远完成)。
所以我的问题是:如何在 migrate.php 页面的 PHP 循环中运行大约 120,000 个 UPDATE 查询并避免 504 超时(当前设置为 5 分钟的限制),或者通过打印查询并通过 PHPMyAdmin 运行它们?
我已经打印出来(片段):
BEGIN;
UPDATE renewal_reminder SET renewalid='49884' WHERE renewalid='43239';
UPDATE renewal_note SET renewalid='49884' WHERE renewalid='43239';
UPDATE renewal_request SET renewalid='49884' WHERE renewalid='43239';
UPDATE renewal_timeline SET renewalid='49884' WHERE renewalid='43239';
COMMIT;
但这仍然会杀死 PHPMyAdmin 并返回错误。
可以在 PHPMyAdmin 中使用这个大的更新列表来运行脚本,也许是分批?
隔江千里