[英]Update Current Row Using PHP/MySQL Loop
我有一個超過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_INCREMENT PRIMARY KEY
如果您要在修改后刪除主鍵
ALTER TABLE table_name MODIFY COLUMN id INT
我會避免手動設置主鍵。 讓MySQL做到這一點要安全得多。 您可以在配置文件中臨時增加超時:
wait_timeout = 28800
interactive_timeout = 28800
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.