Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Masowa zamiana wartosci
arfer
post 26.12.2012, 14:58:00
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.04.2012

Ostrzeżenie: (0%)
-----


Witam,
Mam do Was takie pytanie, czy istnieje jakies zapytanie ktore masowo zamieniloby jakas wartosc w kolumnie tak zeby np wszystkie 1 zamienily sie na 99?
Mam taka sytuacje ze chcialbym zmienic niektorym uzytkownikom ich id ale wiadomo ze wtedy wszystkie ich wyniki w osobnej tabeli ktore byly przypisane do konkretnych userow znikna bo nie beda poprawne odwolania czyli wyniki zostana dla id 1 podczas gdy juz takiego usera nie bedzie bo zmienil id na 99. Nie chcialbym robic tego recznie bo mam kilka tysiecy wynikow w bazie gdzie na kazdego usera przypada po 100-200 wiec troche by to potrwalo wiec mam nadzieje ze jest jakies magiczne rozwiazanie tego problemu biggrin.gif
Pozdrawiam i Wesolych Swiat wink.gif
Go to the top of the page
+Quote Post
webdice
post 26.12.2012, 15:10:51
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Poczytaj sobie o kluczach obcych.
Go to the top of the page
+Quote Post
arfer
post 26.12.2012, 19:54:08
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.04.2012

Ostrzeżenie: (0%)
-----


Szczerze mowiac liczylem na bardziej precyzyjna rade. Tutaj nawet nie wiem gdzie mam zaczac tyle tych roznych przykladow smile.gif
Go to the top of the page
+Quote Post
webdice
post 26.12.2012, 20:24:03
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Google. Takie trudne?
Go to the top of the page
+Quote Post
arfer
post 29.12.2012, 11:32:32
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.04.2012

Ostrzeżenie: (0%)
-----


Mam wrazenie ze klucze obce to nie jest rozwiazanie mojego problemu. Moze pokaze jeszcze raz o co mi chodzi bo troche zamotalem w poprzednim poscie.
Mam jakąś tabele a w niej m.in kolumne user_id. Jak widac na zalaczonym obrazku mamy 7 wynikow dla usera o id 1. Chcialbym zmienic te id 1 na 99. Czy jest mozliwosc zrobic to masowo jednym zapytaniem czy musze kazdy wiersz edytowac przez Phpmyadmin osobno i zmieniac wartosc user_id z 1 na 99?
Pozdrawiam

Go to the top of the page
+Quote Post
viking
post 29.12.2012, 11:45:07
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Jeżeli klucz obcy ma ustawione ON UPDATE CASCADE zwykły update rekordu spowoduje zmianę w tabelach zależnych.


--------------------
Go to the top of the page
+Quote Post
arfer
post 29.12.2012, 11:54:32
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.04.2012

Ostrzeżenie: (0%)
-----


Przegladajac literature przedmiotu zapoznalem sie czesciowo z dzialaniem kluczy obcych i moje wnioski sa nastepujace (jesli sie myle poprawcie mnie).
Klucze obce pozwalaja tworzyc powiazania miedzy tabelami w taki sposob ze jesli zmienimy dana wartosc w jednej tabeli zmieni sie ona takze w drugiej jesli zostalo utworzone miedzy nimi powiazanie. Jest to czesciowo wyjscie z mojego problemu aczkolwiek przyznam szczerze ze dla mnie 'niedzielnego' programisty ktory nie mial wczesniej z tym stycznosci wydaje mi sie to troszeczke skomplikowane a nie jest to odpowiedz konkretnie na moje pytanie bowiem ja chcialbym zmienic masowo wszystkie takie same wartosci w danej kolumnie czyli jesli chce zmienic 1 na 99 to tak zeby zmienily sie wszystkie 1 w tej kolumnie bez wzgledu na to czy sa inne tabele. Wiem ze w peirwszym poscie to zasugerowalem i faktycznie taka druga tabele gdzie moglbym utworzyc klucz obcy mam ale nie chcialbym jej ruszac. Chodzi mi tylko i wylacznie o ta jedna konkretna tabele gdzie chcialbym zmienic w niej niektore wartosci w jednej kolumnie ale tak ze gdy zmieniam wartosc 1 to zmieniaja sie wszystkie 1 w tej kolumnie. Czy jest taka mozliwosc czy musze to zrobic za pomoca kluczy obcych?

Ten post edytował arfer 29.12.2012, 13:37:50
Go to the top of the page
+Quote Post
sazian
post 29.12.2012, 15:19:50
Post #8





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


  1. UPDATE tabela SET user_id=99 WHERE user_id=1

ale to może doprowadzić do "konfliktu" jeśli użytkownik o id 99 już istnieje.
Go to the top of the page
+Quote Post
arfer
post 29.12.2012, 17:13:14
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.04.2012

Ostrzeżenie: (0%)
-----


Dzieki wielkie Sazian o to mi wlasnie chodzilo. smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:50