[ Jovana_87_Bg @ 22.12.2012. 11:49 ] @
Imam problem sa brisanjem samo jednog reda od vise istih.
Primer tabele

ime---prezme---ulica
petar peric simina 1
petar peric simina 1
petar peric simina 1

Kako da limitiram SQL upit da brise samo jedan red. Ja sam probala sledecim kodom, ali je problem taj sto mi on obrise sve redove u kojima je (ime PETAR, prezime PERIC, ulica SIMINA 1).

Code:

String query= "DELETE FROM IMENIK WHERE (IME='"+ime+"' AND PREZIME='"+prezime+"' AND ULICA='"+ulica+"')"; 


Kada se ovaj upit izvrsi tabela ostaje prazna, a ja bih zelela da se obrise samo jedan red, a ostanu dva.
ime---prezme---ulica
petar peric simina 1
petar peric simina 1
[ Tyler Durden @ 22.12.2012. 11:51 ] @
Stavi na kraju upita LIMIT 1.
[ Jovana_87_Bg @ 22.12.2012. 12:05 ] @
Vec sam pokusala sa LIMIT 1, ali u tom slucaju nije hteo nista da obrise. U koliko nesto znaci, radim sa Access bazom.

Code:

String query= "DELETE FROM IMENIK WHERE (IME='"+ime+"' AND PREZIME='"+prezime+"' AND ULICA='"+ulica+"') LIMIT 1";
[ Tyler Durden @ 22.12.2012. 12:32 ] @
Pa naravno da ZNACI!
Kako mozes da postavis pitanja o Access-u u podforum MySQL?!
[ Predrag Supurovic @ 22.12.2012. 12:35 ] @
Svaki slog tabele mora da ima jedinstven ključ. Tvoja tabela ga nema. To su OSNOVE projektovanja baza.
Tvoja tabela treba da ima polje (možeš ganazvati ID_ADRESE ili slično) koje će da ima jedinstvenu vrednost za svaki slog. Obično to bude autoincrement polje.

Pogledaj u Access dokumentaciji dali slučano Access sam pravi RowID ili neki sličan primarni ključ tabele.

[ Jovana_87_Bg @ 22.12.2012. 12:39 ] @
@Tyler Durden pitanje nije o ACCESSu nego o SQL upitu, koji koristim u Java programu. I u koliko je na pogresnom mestu, administratori ce verovatno da ga redirektuju u delu za Access.
[ Jovana_87_Bg @ 22.12.2012. 12:41 ] @
Citat:
Predrag Supurovic:
Svaki slog tabele mora da ima jedinstven ključ. Tvoja tabela ga nema. To su OSNOVE projektovanja baza.
Tvoja tabela treba da ima polje (možeš ganazvati ID_ADRESE ili slično) koje će da ima jedinstvenu vrednost za svaki slog. Obično to bude autoincrement polje.

Pogledaj u Access dokumentaciji dali slučano Access sam pravi RowID ili neki sličan primarni ključ tabele.


Imam polje ID (access ga sam pravi), nego sam mislila da moze i na neki drugi nacin to da se uradi. Jer sam videla na goolge-u da mnogi koriste "LIMIT"....
[ Predrag Supurovic @ 22.12.2012. 12:58 ] @
Ako postoji ID polje onda koristi njega da obrišeš tačno to što želiš. Batali LIMIT. To čak i da radi je pogrešno.
[ Jovana_87_Bg @ 22.12.2012. 13:01 ] @
Hvala na sugestijama. Resila sam problem pomocu ID-a.
[ plague @ 22.12.2012. 13:05 ] @
Jesi probala:
Code:

DELETE TOP(1) FROM IMENIK WHERE (IME='"+ime+"' AND PREZIME='"+prezime+"' AND ULICA='"+ulica+"') 
[ Jovana_87_Bg @ 22.12.2012. 20:19 ] @
Hvala :) resila sam sa ID :)