Sammenlægning af to tabeller går ud over relationer
  Home FAQ Contact Sign in
dk.edb.database only
 
Advanced search
POPULAR GROUPS

more...

dk.edb.database Profile…
 Up
Sammenlægning af to tabeller går ud over relationer         


Author: Brian 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
Re: Sammenlægning af to tabeller går ud over relationer         


Author: Gert 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
Re: Sammenlægning af to tabeller går ud over relationer         


Author: Peter 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
Re: Sammenlægning af to tabeller går ud over relationer         


Author: Kristian 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
Re: Sammenlægning af to tabeller går ud over relationer         


Author: Brian 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
Re: Sammenlægning af to tabeller går ud over relationer         


Author: Brian 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
Re: Sammenlægning af to tabeller går ud over relationer         


Author: Kristian 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
Re: Sammenlægning af to tabeller går ud over relationer         


Author: Brian 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
Re: Sammenlægning af to tabeller går ud over relationer         


Author: Kristian 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
Re: Sammenlægning af to tabeller går ud over relationer         


Author: Brian 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
1 2