Jak powinna wyglądać komenda update aby w tabeli posiadającej już kilkadziesiąt rekordów do danej kolumny (np. int) od razu wprowadzić dla np. 20 rekordów (spełniających jakiś warunek WHERE) rosnące, kolejne wartości (1,2,3,4,5 .....)?
Komenda updejstująca zestaw pól rosnącymi wartościami
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
- stored proc to załatwi (bez licznika może być ciężko)
- nigdy po stronie bazy nie powinieneś trzymać czegoś takiego jak liczba porządkowa
- Rejestracja: dni
- Ostatnio: dni
Czy masz na myśli stored procedure:
http://pl.wikipedia.org/wiki/Procedura_sk%C5%82adowana
?
Jeżeli tak to będę musiał w tym podłubać bo nie znam tematu zupełnie.
Jeżeli można to zrobić przez jakąś dodatkowa tabelę z polem licznika to ok. tylko i tak nie wiem jak wywołać samopowtarzajacą się komendę (jak pętla "for") przechodzącą przez wybrane rekordy sczytującą licznik, wypełniajacą odpowiednią kolumnę i powiększającą licznik.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
tak chodziło mi o stored procedure. Jednak będzie to wolne bo jeśli będziesz chciał zmienić 1000 rekordów to trzeba będzie 1000 razy wywołać update. Jak już pisałem taka kolumna w bazie to same problemy i nie robi się tego w ten sposób
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Warszawa
- Postów: 31
A może po prostu tak:
set @i=0;
UPDATE table_name SET pos_field_name= (@i:=@i+1) WHERE condition_field_name=2;
- Rejestracja: dni
- Ostatnio: dni
Dzięki Michał za ten kod.
Być może rozwiąże to sprawę. Przetestuję to jutro jak będę miał dostęp do mojej bazy. Jak będzie działało to super bo kolejny problem z głowy : )