[SQL] ciężki update


(Lysy1033) #1

witam kolegów ponownie.

mam 2 tabele.

miasta: id, nazwa

i

abonenci:


id,....,miejscowosc

dane mam takie:

miasta:

1 -- adamow

i

abonenci

1 --,--,-- adamow

teraz chcialbym update zrobic dla wszystkich abonentow zeby dane wygladaly tak:

abonenci:

1 --,--,-- 1

czyli zeby w miejsce miejscowosc abonenta trafilo id miasta z tabeli miasta. wymyslilem sobie cos takiego:

update abonenci,miasta set abonenci.miejscowosc = miasta.id where abonenci.miejscowosc = miasta.nazwa

ale na sredniej bazie 65tys rekordow mieli juz od 20 min i nic jeszcze mi nie napisal co jest grane. macie jakies pomysly? moze cos zapetlilem? dodam ze chodzi o mysql


(Airborn) #2
ALTER TABLE miejscowosci ADD COLUMN miasto_id INT;

UPDATE abonenci a, miejscowosci m SET a.miasto_id = m.id WHERE a.miejscowosc = m.nazwa;

ALTER TABLE miejscowosci DROP COLUMN miejscowosc;

głównie dzięki pomocy L337 Crew , dzięki któremu w ogóle doszukałem się MySQLa na komputerze i który przygotował strukturę bazy do testów