Portál AbcLinuxu, 10. května 2025 00:27

Dotaz: Atualizace tabulky mysql

7.3.2012 20:32 Ivo13
Atualizace tabulky mysql
Přečteno: 184×
Odpovědět | Admin
Zdravím,
mám takový dotaz jestli by někdo neporadil.

Mám tabulku v DB. přes CSV soubor aktualizuji jeden sloupec reference, na což je jednoduchá úprava :

$query = "UPDATE prod SET `prix`='".$se[$i][1]."' WHERE `reference`='".$se[$i][0]."'";

problém je ten, že pokud v CSV souboru je položka navíc o které nevím, tudíž není v DB tak se pochopitelně nezaktualizuje ( což ale bych tu položku potřeboval samozřejmě doplnit).

A zde je jádro věci, potřebuji docílit aby mi při aktualizaci příkladně výpis udělal :

123 - OK
234 - OK
567 - ERR ( není v DB )
789 - OK

Neporadil by prosím někdo? Moc díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.3.2012 20:43 Kit
Rozbalit Rozbalit vše Re: Atualizace tabulky mysql
Odpovědět | | Sbalit | Link | Blokovat | Admin
Po každém UPDATE si zjisti počet ovlivněných záznamů. Pokud==0, změna se neprovedla a můžeš vyhodit chybu.

Hodí se to však jen pro malý počet měněných záznamů, protože spouštět SQL dotazy v cyklu je jinak docela hloupost.
7.3.2012 21:32 voda | skóre: 28
Rozbalit Rozbalit vše Re: Atualizace tabulky mysql
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi hledáš replace.
7.3.2012 21:41 Kit
Rozbalit Rozbalit vše Re: Atualizace tabulky mysql
Obávám se, že v daném případě může REPLACE napáchat dost škody, protože původní záznam se shodným PK nejprve smaže a teprve pak založí nový. U dobře normalizované databáze to vadit nemusí.
8.3.2012 10:57 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Atualizace tabulky mysql
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.