簡體   English   中英

使用PHP / MySQL循環更新當前行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM