/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Kopiere / dublikere række
Fra : Anders Matthiessen


Dato : 06-06-04 14:52

Hej Gruppe

Kan man med ren sql (mysql) kopiere/dublikere en specifik række, til en
ny ?

Hilsen
/Anders

 
 
Troels Arvin (06-06-2004)
Kommentar
Fra : Troels Arvin


Dato : 06-06-04 14:56

On Sun, 06 Jun 2004 15:51:51 +0200, Anders Matthiessen wrote:

> Hej Gruppe
>
> Kan man med ren sql (mysql) kopiere/dublikere en specifik række, til en
> ny ?

Ja, du kan bare INSERT'e den igen, givet at tabellen ikke har constraints,
der forhindrer det (såsom en primærnøgle). Men hvorfor i alverden vil
du dog det?

Er der i virkeligheden tale om, at du vil kopiere en række fra én tabel
til en anden? - I så fald synes jeg, at du skal læse lidt om begrebet
"normalisering".

--
Greetings from Troels Arvin, Copenhagen, Denmark


Anders Matthiessen (06-06-2004)
Kommentar
Fra : Anders Matthiessen


Dato : 06-06-04 15:12

Troels Arvin wrote:


> Ja, du kan bare INSERT'e den igen, givet at tabellen ikke har constraints,
> der forhindrer det (såsom en primærnøgle). Men hvorfor i alverden vil
> du dog det?
>
> Er der i virkeligheden tale om, at du vil kopiere en række fra én tabel
> til en anden? - I så fald synes jeg, at du skal læse lidt om begrebet
> "normalisering".

Det handler bare om en produkt-tabel med produkter i. Jeg vil bare
kopiere enkelte produkter, og lægge dem i en ny række.

/Anders



Troels Arvin (06-06-2004)
Kommentar
Fra : Troels Arvin


Dato : 06-06-04 15:15

On Sun, 06 Jun 2004 16:11:50 +0200, Anders Matthiessen wrote:

> Det handler bare om en produkt-tabel med produkter i. Jeg vil bare kopiere
> enkelte produkter, og lægge dem i en ny række.

En ny række i samme tabel?

--
Greetings from Troels Arvin, Copenhagen, Denmark


Anders Matthiessen (06-06-2004)
Kommentar
Fra : Anders Matthiessen


Dato : 06-06-04 15:20

Troels Arvin wrote:

<snip>

> En ny række i samme tabel?

Ja :)


Troels Arvin (06-06-2004)
Kommentar
Fra : Troels Arvin


Dato : 06-06-04 15:39

On Sun, 06 Jun 2004 16:20:28 +0200, Anders Matthiessen wrote:

>> En ny række i samme tabel?
>
> Ja :)

Det lyder som om, at du har et varelager og ønsker en række for hvert
produkt, således at hvis der er to éns produkter på lager, får du to éns
rækker. Det er noget snavs.

For det første: Hvordan vil du fra en tabel med fx. 10 éns rækker for
et produkt fjerne én af rækkerne, når én af de 10 éns produkter
bliver solgt?

For det andet: Hvorfor spilde plads på at gemme éns informationer
talrige gange?

Forslag til anderledes løsning: Tilknyt en attribut fx. kaldet "antal",
der angiver, hvor mange af det pågældende produkt, du har på lager. Du
kan da udføre

UPDATE lager
SET antal=antal-1
WHERE produkt_id=...

Lad produkt_id være en attribut (et felt), der éntydigt identificerer
et produkt. - Og lad da produkt_id være primærnøgle (PRIMARY KEY) i
tabellen, således at du ikke kommer til at indføje et produkt mere end
én gang.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Anders Matthiessen (06-06-2004)
Kommentar
Fra : Anders Matthiessen


Dato : 06-06-04 16:07

Troels Arvin wrote:

>
> Det lyder som om, at du har et varelager og ønsker en række for hvert
> produkt, således at hvis der er to éns produkter på lager, får du to éns
> rækker. Det er noget snavs.
<snip>

Hehe, som jeg kan se hvordan den her tråd udvikler sig, kan jeg se at
jeg blir nødt til at forklare mine problemer _meget_ dybere

Ok, prøver forfra

Jeg har lavet et program som redigerer en bestemt tabel. Rækkerne består
af enkelte produkter. Jeg vil i programmet lave sådan, at man kan
kopiere et produkt, for da produkterne ofte er 90% identiske, er det
ingen grund at indtaste det (næsten) samme data ind flere gange.

Og spørgsmålet lyder så :
Hvordan skal en sql-kommando udformes, så jeg kopierer en rækkes data,
og lægger i en ny

Viola

/Anders


Jan Bachman (06-06-2004)
Kommentar
Fra : Jan Bachman


Dato : 06-06-04 16:48

>Og spørgsmålet lyder så :
>Hvordan skal en sql-kommando udformes, så jeg kopierer en rækkes data,
>og lægger i en ny

Scenarie:
Tabel: produkt
Felter: ID, navn, type, pris.
Nøglefelt: ID (autonummerering/counter)

SQL:
insert into produkt (navn, type, pris)
select navn, type, pris
from produkt
where ID=XXX;

Udskift XXX med ID-nummeret på den række der skal kopieres.

/Jan

Anders Matthiessen (06-06-2004)
Kommentar
Fra : Anders Matthiessen


Dato : 06-06-04 17:47

Jan Bachman wrote:

> Scenarie:
> Tabel: produkt
> Felter: ID, navn, type, pris.
> Nøglefelt: ID (autonummerering/counter)
>
> SQL:
> insert into produkt (navn, type, pris)
> select navn, type, pris
> from produkt
> where ID=XXX;

Jeg siger mange tak. Jeg havde håbet på at man kunne undgå at skrive de
forskellige kolonnenavne, men det her er perfekt :)

super tak

/Anders

Peter Brodersen (06-06-2004)
Kommentar
Fra : Peter Brodersen


Dato : 06-06-04 22:19

On Sun, 06 Jun 2004 18:46:46 +0200, Anders Matthiessen <web@dioder.dk>
wrote:

>Jeg siger mange tak. Jeg havde håbet på at man kunne undgå at skrive de
>forskellige kolonnenavne, men det her er perfekt :)

Det kan du også:

insert into produkt
select *
from produkt
where ID=XXX;

... hvis det altså er alle feltnavne, du skal have duplikeret.

Dog kunne det så tyde på at der ikke er nogen primærnøgle, men det er
så en anden sag.

--
- Peter Brodersen

Ugens sprogtip: at tjekke (og ikke at checke)

Søg
Reklame
Statistik
Spørgsmål : 177493
Tips : 31966
Nyheder : 719565
Indlæg : 6408479
Brugere : 218886

Månedens bedste
Årets bedste
Sidste års bedste