Autor | Zpráva | ||
---|---|---|---|
Mufna Profil |
#1 · Zasláno: 18. 1. 2009, 19:00:27
Zdravím Vás. Zakládám si databázi a narazil jsem na problém (viz název tématu). V tabulce s jedním primary key (id) - nastaveno na auto-increment - jsem měl ručně (přes PHPMy Admina) vloženo asi 10 záznamů. Poté jsem 2 z nich úplně smazal a naopak 2 jiné přidal. Všiml jsem si, že ID těch smazaných záznamů už se nikam nepřiřadilo, nové záznamy už měly ID vždy o 2 vyšší. Chtěl jsem (mám tu db zatím pokusně jen pro sebe), aby v řadě ID nechyběly čísla, tak jsem ručně změnil ID nových záznamů na číslo o 2 nižší. Od té doby ale mám ve výpisech z DB bordel.
Co s tím jde udělat ? Šlo by nějak vymazat původní řadu ID a přiřadit ID znovu ? Či nějaké jiné řešení, aby výpisy byly OK ? |
||
Alphard Profil |
#2 · Zasláno: 18. 1. 2009, 19:09:24
„Šlo by nějak vymazat původní řadu ID a přiřadit ID znovu ?“
ano, http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=28&topic=37836 – setřepání sloupce „tak jsem ručně změnil ID nových záznamů na číslo o 2 nižší. Od té doby ale mám ve výpisech z DB bordel.“ to se dalo očekávat, většina lidí (aspoň z těch, kteří sem píší) se snaží udržovat řady id bez děr, to je ale již z principu blbost, když se nějaké smaže, tak se tam prostě nechá díra nevymýšlejte nové věci a bude to fungovat |
||
Mufna Profil |
#3 · Zasláno: 18. 1. 2009, 19:14:49
Alphard
udržovat řady id bez děr, to je ale již z principu blbost Já vím, jen jsem to chtěl zkusit pro těch pár položek co tam mám + chtěl jsem (zatím samozřejmě) bez nějakého složitého dotazu dosáhnout toho, aby se 3 související položky zobrazily při výpisu vedle sebe (zatím vybírám $row přes foreach, takže jsem to prostě chtěl vedle sebe a ne zpřeházeně). Do budoucna je to samozřejmě nesmysl, to je mi jasný. Díky za odkaz, jdu se tím probrat |
||
Mufna Profil |
#4 · Zasláno: 18. 1. 2009, 19:47:48
Tak nějak nevím. Můžete mi ještě poradit blíže. Tuhle záležitost asi nevyřeším. Sestavil jsem si dotaz (je to určitě blbě), který jsem vložil na konci svého "initdb.php"
$res=query("SET @radek=0"); $res=query("UPDATE ".$tbl_prefix."reference_list SET ".$tbl_prefix."reference_list.id=@radek:=@radek+1 ORDER BY id"); Ale fakt nevím, je to určitě blbě, ale v tomhle případě nevím co s tím. Chci upravit sloupce v tabulce "reference_list". Když jsem tam měl místo "id" "position", zahlásilo mi to "neznámý sloupec v tabulce". |
||
ninja Profil |
#5 · Zasláno: 18. 1. 2009, 23:23:17
Mufna: Proc vyzadujete, aby tam nevznikaly mezery? Pokud chcete nejak udrzovat vztah mezi radky, primary key se na to moc nehodi.
|
||
Mufna Profil |
#6 · Zasláno: 20. 1. 2009, 23:32:40
ninja
Proc vyzadujete, aby tam nevznikaly mezery? Obecně to vyžadovat nechci a nebudu, ale prostě tentokrát jsem něco zkusil (ručně přečíslovat primary key) a začalo mi to trochu zlobit, proto se tady ptám, co s tím můžu udělat. |
||
Časová prodleva: 15 let
|
0