Autor | Zpráva | ||
---|---|---|---|
SteveO Profil * |
#1 · Zasláno: 10. 12. 2012, 21:38:13
Zdravím, potřeboval bych naléhavě poradit.
V DB je cca 50 tisíc řádků s IDčky ve sloupci id . Tato ID byla doplněna pomocí A_I.
V průběhu plnění databáze se samozřejmě některé řádky smazaly a ID tak nyní nejdou přesně popořadě. A dotaz zní, jak přepočítat sloupec s IDčky tak, aby šly od 1 do konce, tedy do těch cca 50 000? Zkusil jsem to následujícím skriptem (udělal jsem kopii sloupce - sloupec id2 tedy obsahuje stejné hodnoty jako sloupec id), ale těch dotazů na databázi je v cyklu prostě moc a server vyhodí chybu 500. Zkoušel jsem to i po částech přes LIMIT na 2000, ale nepomohlo to. $i=0; $sql=mysql_query("SELECT id2 FROM tabulka ORDER BY id2 LIMIT 0, 2000"); while($data=mysql_fetch_array($sql)) { $i++; $sql2=mysql_query("UPDATE tabulka SET id=".$i." WHERE id2=".$data["id2"]); } Díky všem za rady. |
||
Taps Profil |
#2 · Zasláno: 10. 12. 2012, 21:43:55
|
||
Alphard Profil |
#3 · Zasláno: 10. 12. 2012, 21:44:03
Jestli na takové nerozumnosti trváte, ve FAQ je kód, který to udělá.
|
||
Sir Tom Profil |
SteveO:
Také zdravím, na změnu IDček se vykašli. Nemůžeš měnit identifikační položku k řádku. |
||
candiess Profil |
#5 · Zasláno: 11. 12. 2012, 11:03:20
Sir Tom:
ne že nemuže, ale neměl by to dělat, zvášt pokud používá relace |
||
whoami Profil |
#6 · Zasláno: 11. 12. 2012, 20:20:03
candiess:
ON UPDATE CASCADE |
||
Časová prodleva: 11 let
|
0