Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kopiranje kolona iz tabele u tabelu

[es] :: MySQL :: Kopiranje kolona iz tabele u tabelu

[ Pregleda: 1297 | Odgovora: 6 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

brainbuger
Bg

Član broj: 9647
Poruke: 377
80.93.236.*



Profil

icon Kopiranje kolona iz tabele u tabelu17.11.2006. u 12:49

Imam 2 tabele: A i B. Obe imaju veliki broj kolona.

Pokusavam da pronadjem SQL kojim bih mogao da prekopiram kolone iz tabele A u tabelu B
(to jest samo one kolone iz tabele A koje ne postoje u tabeli B ).

Probao sam sa nekim alatima kao sto je PhpMyAdmin ali koliko vidim nema mogucnost kopiranja/pomeranja kolona.








17.11.2006. u 12:49 

01011011
Nikola Ivetić
CHICAGO, USA

Član broj: 561
Poruke: 2341
216.5.82.*

ICQ: 45747235
Sajt: www.memorizeme.net


Profil

icon Re: Kopiranje kolona iz tabele u tabelu17.11.2006. u 15:53
daj strukturu kolona i da li su kolone jednake, koji je razlog da imas dve tabele identicne.

Ukoliko hoces da npr table 1

tabela 1

id
polje1
polje2


tabla 2

id
polje3


e sad ako hoces da samo prebacis cijelo polje2 npr iz jedne tabele u drugu, onda je to druga stvar, mora da napravis skriptu

Ono alter table2 insert ffield bla bla bla

prvo ubacis dodatno polje u table 2 i onda update table2 set polje2 = (select polje2 from table1 where table1.id = table2.id)

tako nesto...

17.11.2006. u 15:53 

brainbuger
Bg

Član broj: 9647
Poruke: 377
80.93.236.*



Profil

icon Re: Kopiranje kolona iz tabele u tabelu20.11.2006. u 16:20
Evo ako uzmemo postavku koju si ti dao:
<tabela 1>
id
polje1
polje2

<tabla 2>
id
polje3

Ono sto me buni je da li ima nacina da SQL-om proverim da li 'tabela1' ima sve kolone koje postoje u 'tabeli2', sto bi u ovom slucaju znacilo da u tabeli1 ne dostaje kolona 'polje3' pa bi je trebalo automatski insertovati i postaviti isti tip podatka (VARCHAR, TEXT, INT...).
Imam par baza sa poprilicno dosta tabela (preko 70) cije strukture treba izjednaciti i to samo u jednom smeru. Nije mi problem prenosenje podataka iz polja vec samo struktura i definicije polja. Uostalom, ako nista, napisacu neku php skripticu...

20.11.2006. u 16:20 

zmau
Dragan Jovanović
Šabac

Član broj: 80834
Poruke: 218
*.32.eunet.yu.

Sajt: www.jovanovic.fotopic.net


Profil

icon Re: Kopiranje kolona iz tabele u tabelu22.11.2006. u 22:07
Verujem da nemaš potrebu za PHPom. Pročačkaj po metabazi (baza information_schema), tamo imaš sve podatke o strukturi koji te zanimaju. Vidi recimo tabele tables i columns. SQL skript nad metabazom bi morao da reši tvoj problem.
it works on my machine
22.11.2006. u 22:07 

brainbuger
Bg

Član broj: 9647
Poruke: 377
*.vdial.verat.net.



Profil

icon Re: Kopiranje kolona iz tabele u tabelu25.11.2006. u 00:45
Citat:
zmau: SQL skript nad metabazom bi morao da reši tvoj problem.

Tesko. Barem ne na mojoj 4.x verziji, jer koliko vidim INFORMATION_SCHEMA je uvedena tek sa verzijom MySQL-a 5.x, tako da od tog posla nista. Inace (odlicna ideja) za uzimanje podataka o tabelama. Iz nje se moze doci do svakog podatka o tabeli, koloni,polju itd. Mada, koliko sam uspeo da procitam mysql dozvalja samo gledanje tabela unutar INFORMATION_SCHEMA, upis ili brisanje nisu dozvoljeni, sto je mozda na kraju krajeva i sasvim razumljivo.

Sve u svemu , začin 'C'...... to jest, stari dobri php je vec odradio stvar :)
25.11.2006. u 00:45 

glavince
Ohrid/Macedonia

Član broj: 66412
Poruke: 246
62.162.91.*

Sajt: ohridnews.com


Profil

icon Re: Kopiranje kolona iz tabele u tabelu26.11.2006. u 01:28
I ja imam slican problem. Da ne otvaram novu temu, pa cu se nadovezati.
Ovako. Imam dve potpuno identicne tabele, jedna je na udaljenom serveru druga je na localhost. Znaci kolone su iste a redove treba da preuzmem od tabele na udaljenom serveru i da ih postavim na lokalni. Za to treba da napravim cron koji ce na svaki 1 cas prebacivati sadrzaj tabele. Moje pitanje je kako to najbolje uraditi. Dali prvo truncate table pa posle nesto kao foreach da ubacujem redove, ili postoji neki bolji i brzi nacin. Na primer da se prekopira cela tabela.
26.11.2006. u 01:28 

brainbuger
Bg

Član broj: 9647
Poruke: 377
80.93.236.*



Profil

icon Re: Kopiranje kolona iz tabele u tabelu26.11.2006. u 19:04
Meni je bilo bitno da postupak izjednacavanja bude siguran i ispravno uradjen, brzina mi nije bila bitna jer to ne radim toliko cesto.
Koristeci recimo php, pokupis prvo sve nazive tabela u prvi niz (sa recimo SHOW TABLES), a onda za svaku od tabela pokupis sve nazive i definicije polja i smestis ih u drugi niz, koristeci :
mysql_fetch_field() i mysql_field_type()
Konektujes se na drugu bazu (na onu koja ce primiti izmene) i foreach ili for petljom redom proveravas da li postoji tabela sa odredjenim nazivom (iz prvog niza), ako postoji ulazi se u podpetlju koja proverava da li postoje sve kolone u toj tabeli, ako neka ne postoji, radis ALTER koristeci naziv i definicije koje si ranije smestio u drugi niz. Ovo bi bilo neko jednosmerno resenje kada u bazi koja prima podatke vec postoje neke tabele ali nedostaju neke kolone.
Ako prenosis i redove, onda ono sto je Nikola rekao: update table2 set polje2 = (select polje2 from table1 where table1.id = table2.id), naravno posto su 2 baze onda nazivi tabela moraju biti u formatu db1.table1, db2.table1, itd.




[Ovu poruku je menjao brainbuger dana 26.11.2006. u 20:18 GMT+1]
26.11.2006. u 19:04 

[es] :: MySQL :: Kopiranje kolona iz tabele u tabelu

[ Pregleda: 1297 | Odgovora: 6 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.