Zadejte hledaný výraz...

Mysql, výpis jiz smazanych id

lahwin
verified
rating uzivatele
(12 hodnocení)
21. 12. 2018 00:20:34
mám dotaz, mám v dtb např. 1000 záznamů od id 1 až po 1000
některé záznamy a to náhodně však musím občas smazat.
Potřeboval bych tyto smazané id však pomocí dotazu do dtb vypsat jelikož je na nich vázán další
potřebný krok.
Děkuji
P.
je to php mysql
21. 12. 2018 00:20:34
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380417
Tak je nemaž natvrdo, ale nastavením sloupce, například SET active = 0
Eventuálně přidej i datum smazání.
21. 12. 2018 00:28:19
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380416
lahwin
verified
rating uzivatele
(12 hodnocení)
21. 12. 2018 00:48:12
Napsal Martin Schlemmer;1502619
Tak je nemaž natvrdo, ale nastavením sloupce, například SET active = 0
Eventuálně přidej i datum smazání.
To mohu takto udělat do budoucna ale i přez to bych potřeboval vypsat tyto id tak jak jsem popsal , jde o to že dtb je používaná a ty odmazané jsou nyní nenávratně pryč , nemohu teď ani ty id nechat seřadit.
21. 12. 2018 00:48:12
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380415
David Musil
verified
rating uzivatele
(69 hodnocení)
21. 12. 2018 01:04:05
Chápu to tam, že PHP už je krok navíc a musí to být jen na úrovni dtb?
21. 12. 2018 01:04:05
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380414
lahwin
verified
rating uzivatele
(12 hodnocení)
21. 12. 2018 01:37:33
Napsal musil.david;1502622
Chápu to tam, že PHP už je krok navíc a musí to být jen na úrovni dtb?
na ty neexistujici id je vždy navázán fyzicky na disku soubor.
takže např id 957 má unikátní cestu do adresáře a podadresáře k souboru a já je nyní chci odebrat (ty soubory) a pročistit disk.
bavíme se však o cca 300.000++ idéčkách :o(
21. 12. 2018 01:37:33
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380413
Martin
verified
rating uzivatele
(62 hodnocení)
21. 12. 2018 01:41:54
Napsal lahwin;1502621
To mohu takto udělat do budoucna ale i přez to bych potřeboval vypsat tyto id tak jak jsem popsal , jde o to že dtb je používaná a ty odmazané jsou nyní nenávratně pryč , nemohu teď ani ty id nechat seřadit.
Tak bych si udělal jednorázový script, který by mi tu DB prošel jedno ID za druhý a pokud by neexistovalo, vytvořil by v DB "smazaný záznam" a smazal soubor na disku.
21. 12. 2018 01:41:54
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380412
lahwin
verified
rating uzivatele
(12 hodnocení)
21. 12. 2018 01:50:11
Napsal Martin Kejzlar;1502627
Tak bych si udělal jednorázový script, který by mi tu DB prošel jedno ID za druhý a pokud by neexistovalo, vytvořil by v DB "smazaný záznam" a smazal soubor na disku.
a napadá Vás jak by měl vypadat dotaz do dtb?
21. 12. 2018 01:50:11
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380411
tomve
verified
rating uzivatele
(22 hodnocení)
21. 12. 2018 02:02:21
Napsal lahwin;1502628
a napadá Vás jak by měl vypadat dotaz do dtb?
for($i = 1; $i <= 300000; $i++){
db("SELECT COUNT(id) FROM xx WHERE id = '".$i."'");
if($rowcount == 0){
doSomething();
}
}
edit: chyběl sloupec
21. 12. 2018 02:02:21
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380410
Marián
verified
rating uzivatele
(4 hodnocení)
21. 12. 2018 06:51:18
Chybajuce IDcka, resp. sekvencne medzery medzi ID najdes napriklad takto:
http://sqlfiddle.com/#!9/d80c6a/1
Vypise ti to, kde zacina medzera a kde konci.
Pre testovaciu tabulku:
To vyjde takto:
https://stackoverflow.com/questions/12325132/mysql-get-missing-ids-from-table
21. 12. 2018 06:51:18
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380409
Taps
verified
rating uzivatele
(118 hodnocení)
21. 12. 2018 08:44:54
Toto by mohlo jít řešit i přes trigger, který do jiné tabulky zapíše id, které se smazali.
21. 12. 2018 08:44:54
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380408
lahwin
verified
rating uzivatele
(12 hodnocení)
21. 12. 2018 09:52:37
Super.!
moc děkuji všem za odpovědi :o)
PS: hezké svátky
P.
21. 12. 2018 09:52:37
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380407
crs
verified
rating uzivatele
(1 hodnocení)
24. 12. 2018 00:49:48
Verze s 300000 dotazy do databáze:
Napsal Tomve;1502629
for($i = 1; $i <= 300000; $i++){
db("SELECT COUNT(id) FROM xx WHERE id = '".$i."'");
if($rowcount == 0){
doSomething();
}
}
Verze s 1 dotazem do databáze:
$link = mysqli_connect(...);
$query = mysqli_query($link, 'SELECT id FROM tabulka ORDER BY id');
for ($i = 1; $row = $query->fetch_row(); $i++) {
for ($j = $i; $j < $row; $j++) {
echo "$jn"; //něco udělám se smazaným záznamem s id == $j
}
$i = $row;
}
Řešení, které jedním dotazem vypíše id-čka chybějící v postupné sekvenci:
How do I find a "gap" in running counter with SQL? - Stack Overflow
Řešení s triggerem, který id-čko zapíše do jiné tabulky, je na úrovni databáze a osobně mi přijde elegantní.
24. 12. 2018 00:49:48
https://webtrh.cz/diskuse/mysql-vypis-jiz-smazanych-id/#reply1380406
Pro odpověď se přihlašte.
Přihlásit