|
|
Up |
|
|
  |
Author: Brian BendtsenBrian Bendtsen Date: Apr 25, 2008 02:46
Hej
Jeg står overfor en situation hvor jeg skal have flyttet data fra én
mysql database til en anden.
Jeg har importeret tabellerne fra gammel til ny database og i de
tilfælde hvor tabellerne er nogenlunde ens i struktur er der ingen
problemer.
Der er dog det problem at jeg godt kunne tænke mig at sammenlægge to
tabeller til én. Dette vil dog betyde at der er en masse relationer der
vil gå i stykker.
Forestil jer at vi har to tabeller: opskrifter_italien og
opskrifter_frankrig med de samme felter
Jeg vil sammenlægge disse så jeg har en tabel der hedder opskrifter, med
et ekstra felt der hedder land, som så kan indehold italien og frankrig
osv. skulle jeg have lyst til at udvide senere hen.
Problemet er bare at jeg har en del andre tabeller der relatere til de
originale tabeller. Når jeg sammensmelter tabellerne vil opskrifterne få
nye id-numre.
Er der nogen der har et godt tip til hvordan jeg ved brug af sql kan
opdatere relationerne så de kommer til at passe?
|
| Show full article (1.09Kb) |
|
| | 17 Comments |
|
  |
Author: Gert KrabsenGert Krabsen Date: Apr 25, 2008 04:03
Brian Bendtsen skrev:
> Hej
>
> Jeg står overfor en situation hvor jeg skal have flyttet data fra én
> mysql database til en anden.
>
> Jeg har importeret tabellerne fra gammel til ny database og i de
> tilfælde hvor tabellerne er nogenlunde ens i struktur er der ingen
> problemer.
>
> Der er dog det problem at jeg godt kunne tænke mig at sammenlægge to
> tabeller til én. Dette vil dog betyde at der er en masse relationer der
> vil gå i stykker.
>
> Forestil jer at vi har to tabeller: opskrifter_italien og
> opskrifter_frankrig med de samme felter
>
> Jeg vil sammenlægge disse så jeg har en tabel der hedder opskrifter, med
> et ekstra felt der hedder land, som så kan indehold italien og frankrig
> osv. skulle jeg have lyst til at udvide senere hen. ...
|
| Show full article (1.60Kb) |
|
| | no comments |
|
  |
Author: Peter LykkegaardPeter Lykkegaard Date: Apr 25, 2008 10:01
"Brian Bendtsen" skrev
> Problemet er bare at jeg har en del andre tabeller der relatere til de
> originale tabeller. Når jeg sammensmelter tabellerne vil opskrifterne få
> nye id-numre.
>
Ikke nødvendigvis :)
> Er der nogen der har et godt tip til hvordan jeg ved brug af sql kan
> opdatere relationerne så de kommer til at passe?
>
Du kan evt bibeholde de gamle id's (hvis du gerne vil have nye idnumre) og
lave et nyt felt og opdatere efterfølgende
- Peter
|
| |
| no comments |
|
  |
Author: Kristian Damm JensenKristian Damm Jensen Date: Apr 25, 2008 07:00
Brian Bendtsen wrote:
> Hej
>
> Jeg står overfor en situation hvor jeg skal have flyttet data fra én
> mysql database til en anden.
>
> Jeg har importeret tabellerne fra gammel til ny database og i de
> tilfælde hvor tabellerne er nogenlunde ens i struktur er der ingen
> problemer.
>
> Der er dog det problem at jeg godt kunne tænke mig at sammenlægge to
> tabeller til én. Dette vil dog betyde at der er en masse relationer
> der vil gå i stykker.
>
> Forestil jer at vi har to tabeller: opskrifter_italien og
> opskrifter_frankrig med de samme felter
>
> Jeg vil sammenlægge disse så jeg har en tabel der hedder opskrifter,
> med et ekstra felt der hedder land, som så kan indehold italien og
> frankrig osv. skulle jeg have lyst til at udvide senere hen. ...
|
| Show full article (1.69Kb) |
| no comments |
|
  |
Author: Brian BendtsenBrian Bendtsen Date: Apr 28, 2008 04:27
Kristian Damm Jensen skrev:
>
> Start med en overførsel til opskrifter_tmp
>
> create opskrifter_tmp(
> id int not null,
> id_fr int not null, -- id fra opskrifter_frankrig
> id_it int not null, -- id fra opskrifter_italien
> ...
> )
>
> Lav dernæst de nødvendige opdateringer:
>
> update reference_tabel_frankring
> set fremmed_noegle = (select id_fr from from opskrifter_tmp where
> fremmed_noegle = id_fr)
>
> Dette er lavet i standard SQL. Det sidste kan sikkert optimeres, men jeg er
> ikke så godt inde i MySQLs understøttelse af ikke-standard SQL (og det er
> hvad der skal til for at lave optimeringen). ...
|
| Show full article (0.68Kb) |
| no comments |
|
  |
Author: Brian BendtsenBrian Bendtsen Date: Apr 29, 2008 00:50
Brian Bendtsen skrev:
> Kristian Damm Jensen skrev:
>>
>> Start med en overførsel til opskrifter_tmp
>>
>> create opskrifter_tmp(
>> id int not null,
>> id_fr int not null, -- id fra opskrifter_frankrig
>> id_it int not null, -- id fra opskrifter_italien
>> ...
>> )
>>
>> Lav dernæst de nødvendige opdateringer:
>>
>> update reference_tabel_frankring
>> set fremmed_noegle = (select id_fr from from opskrifter_tmp where
>> fremmed_noegle = id_fr)
>>
>> Dette er lavet i standard SQL. Det sidste kan sikkert optimeres, men
>> jeg er ikke så godt inde i MySQLs understøttelse af ikke-standard SQL ...
|
| Show full article (1.28Kb) |
| no comments |
|
  |
Author: Kristian Damm JensenKristian Damm Jensen Date: Apr 29, 2008 06:19
Brian Bendtsen wrote:
> Brian Bendtsen skrev:
>> Kristian Damm Jensen skrev:
>>>
>>> Start med en overførsel til opskrifter_tmp
>>>
>>> create opskrifter_tmp(
>>> id int not null,
>>> id_fr int not null, -- id fra opskrifter_frankrig
>>> id_it int not null, -- id fra opskrifter_italien
>>> ...
>>> )
>>>
>>> Lav dernæst de nødvendige opdateringer:
>>>
>>> update reference_tabel_frankring
>>> set fremmed_noegle = (select id_fr from from opskrifter_tmp where
>>> fremmed_noegle = id_fr)
>>>
>>> Dette er lavet i standard SQL. Det sidste kan sikkert optimeres, men ...
|
| Show full article (2.02Kb) |
| no comments |
|
  |
Author: Brian BendtsenBrian Bendtsen Date: Apr 30, 2008 03:57
Hej Kristian
Kristian Damm Jensen skrev:
> For alle værdier af id_fr ? Det kunne tyde på at der er en dublet i dine
> oprindelige data.
>
> Prøv at køre
>
> select id , count(*)
> from opskrifter_tmp
> join reference_tabel_frankring
> on fremmed_noegle = id_fr
> group by id
> having count(*)>1
>
> Den skulle gerne give dig et tomt resultatsæt.
Jeg får faktisk temmelig mange resultater, men det er vel fordi jeg har
en en-til-mange relation mellem min opskrifter_italien tabel og min
ingredienser tabel, for at tage et eksempel.
Så ingredienser tabellen ser nogenlunde sådan ud:
|
| Show full article (0.72Kb) |
| no comments |
|
  |
Author: Kristian Damm JensenKristian Damm Jensen Date: Apr 30, 2008 06:07
Brian Bendtsen wrote:
> Hej Kristian
>
> Kristian Damm Jensen skrev:
>
>> For alle værdier af id_fr ? Det kunne tyde på at der er en dublet i
>> dine oprindelige data.
>>
>> Prøv at køre
>>
>> select id , count(*)
>> from opskrifter_tmp
>> join reference_tabel_frankring
>> on fremmed_noegle = id_fr
>> group by id
>> having count(*)>1
>>
>> Den skulle gerne give dig et tomt resultatsæt.
>
> Jeg får faktisk temmelig mange resultater, men det er vel fordi jeg ...
|
| Show full article (1.06Kb) |
| no comments |
|
  |
|
|
  |
Author: Brian BendtsenBrian Bendtsen Date: May 5, 2008 14:52
Kristian Damm Jensen skrev:
> Brian Bendtsen wrote:
>> Hej Kristian
>>
>> Kristian Damm Jensen skrev:
>>
>>> For alle værdier af id_fr ? Det kunne tyde på at der er en dublet i
>>> dine oprindelige data.
>>>
>>> Prøv at køre
>>>
>>> select id , count(*)
>>> from opskrifter_tmp
>>> join reference_tabel_frankring
>>> on fremmed_noegle = id_fr
>>> group by id
>>> having count(*)>1
>>>
>>> Den skulle gerne give dig et tomt resultatsæt.
>> Jeg får faktisk temmelig mange resultater, men det er vel fordi jeg ...
|
| Show full article (1.26Kb) |
| no comments |
|
|
|
|