|
| 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)
| |
|
|