Dakle, kako da ovo izvedem? UPDATE ___ SET ____ WHERE id=$id
Medjutim, tabela nema primary key.....
Kako da znam na kom sam row-u u tabeli kada vrsim update, na recimo 15-om redu?
Mozda neki LIMI, ali sa limitom mogu samo prvih n da uzmem, ne mogu samo treci, naprimer
Primary key ti garantuje da ces update-ovati JEDAN row (jer je primary key jedinstven) ali ti mozes napraviti bilo kakav uslov (po bilo kom polju) ako znas ce uraditi to sto zelis. Mozes naravno praviti i kombinacije u WHERE uslovu.
:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
Ukoliko zelis da updatujes slog a nemas primary key koristi se pseudo pk tj rowid. Mozes ga izvuci selectom i koristiti ga kao polje uslova po kome vrsis update. 100% ces updatovati samo posmatrani slog.
primary key takodje podrazumeva da se po default-u pravi index nad njim, sto u zavisnosti od velicine tabele moze znacajno da doprinese brzini (nije da index ne mozes i drugacije da napravis, vidi: create index).
tzv. sinteticki primarni kljuc (u vidu dodatne proste integer vrednosti naspram kompleksnog seta kolona) je uvek popularan izbor kad je rec o raznoraznim optimizacijama baza.
Aplikaciju za koju mi ovo treba nisam ja pravio. Tako da ne mogu da dodajem novi row, inace bih to uradio, naravno...
To je neka temporary tabela. U where klauzuli bih morao da imam preko dozvoljenih 8 (cini mi se) da bih bio siguran, a i presporo je tako, mnogo mi vise odgovara da insertujem svih koliko ih ima, a pre toga da truncate-ujem tabelu.
Prvo pokupim podatke u matricu, zatim ih obradim, pa truncate i onda sve ponovo insertujem... Tako je za sada.
Mada kada ga otvorim u navicatu on mi kaze da nema PK, i da ce updateovanje da se radi preko LIMIT 1 parametra... Iz dokumentacije koliko vidim tesko izvodljivo, pa sam zato hteo da pitam ovde kako bi se to konkretno odradilo!