|
| [MySQL] ID-værdier i tabel Fra : Christian Flintrup |
Dato : 27-07-01 22:07 |
|
Hej,
Jeg har en tabel:
ID Navn By
------------------------
1 Finn Månevang
2 Kirk Østerby
3 Ole Vejby
4 Ronnie Klosterbo
Hvordan laver jeg det sådan, at hvis man fx sletter nr. 2, så bliver det
sådan her
1 Finn Månevang
2 Ole Vejby
3 Ronnie Klosterbo
I stedet for
1 Finn Månevang
3 Ole Vejby
4 Ronnie Klosterbo
Altså så den selv "vedligeholder" ID-kolonnen så tallene er i rækkefølge
--
På forhånd tak
Christian Flintrup
| |
Jonas Delfs (27-07-2001)
| Kommentar Fra : Jonas Delfs |
Dato : 27-07-01 22:21 |
|
"Christian Flintrup" <junk@osxhacks.com> skrev i en meddelelse
news:1ex882l.1h06pp71eu8fyeN%junk@osxhacks.com...
> Jeg har en tabel:
>
[snip tabel-eksempel]
>
> Hvordan laver jeg det sådan, at hvis man fx sletter nr. 2, så bliver det
> sådan her
>
[snip eksempel]
>
> Altså så den selv "vedligeholder" ID-kolonnen så tallene er i rækkefølge
Hvorfor vil du det?
--
Mvh./Best Regards
Jonas Delfs, http://delfs.dk
"Developers are being asked to do more with less, do it faster, and make it
fit with the existing systems and databases." - IDC
| |
Peter Brodersen (27-07-2001)
| Kommentar Fra : Peter Brodersen |
Dato : 27-07-01 23:44 |
|
On Fri, 27 Jul 2001 23:07:03 +0200, junk@osxhacks.com (Christian
Flintrup) wrote:
>Hvordan laver jeg det sådan, at hvis man fx sletter nr. 2, så bliver det
>sådan her
Det gør du ikke - og det ville heller ikke være hensigtsmæssigt.
Forestil dig at du i en anden tabel havde en relation til at Ole Vejby
(nr. 3) havde 200 kr. på kontoen. Efter din rettelse, ville det
pludselig være Ronnie Klosterbo (den nye nr. 3), der havde 200 kr. på
kontoen...
--
- Pede
Professionel nørd
| |
Christian Flintrup (28-07-2001)
| Kommentar Fra : Christian Flintrup |
Dato : 28-07-01 08:11 |
|
Peter Brodersen <professionel@nerd.dk> wrote:
> Det gør du ikke - og det ville heller ikke være hensigtsmæssigt.
> Forestil dig at du i en anden tabel havde en relation til at Ole Vejby
> (nr. 3) havde 200 kr. på kontoen. Efter din rettelse, ville det
> pludselig være Ronnie Klosterbo (den nye nr. 3), der havde 200 kr. på
> kontoen...
Det er rigtigt. Men meningen er netop at der relateres til fx nr. 4 og
det så ikke nødvendigvis er den samme person. Men jeg tror bare jeg
laver det uden at bruge ID-nr. som det, der sætter det i rækkefølge på
siden. I stedet tager jeg det bare i den rækkefølge, det ligger i
databasen. Så kan jeg bruge ID-nr. på normal vis.
Men tak for hjælpen alligevel :)
--
Christian
| |
Svenne Krap (28-07-2001)
| Kommentar Fra : Svenne Krap |
Dato : 28-07-01 21:39 |
|
On Fri, 27 Jul 2001 23:07:03 +0200, junk@osxhacks.com (Christian
Flintrup) wrote:
>Hej,
>
>Hvordan laver jeg det sådan, at hvis man fx sletter nr. 2, så bliver det
>sådan her
>
>1 Finn Månevang
>2 Ole Vejby
>3 Ronnie Klosterbo
>
>I stedet for
>
>1 Finn Månevang
>3 Ole Vejby
>4 Ronnie Klosterbo
>
>Altså så den selv "vedligeholder" ID-kolonnen så tallene er i rækkefølge
Mysql kan det desværre ikke... <flamebait>i en rigtig database ville
du oprette en "on delete" trigger</flamebait>
Som også andre skriver, har du sikkert ikke lyst til at gøre det..
Hvis trangen alligevel melder sig :
delete from "tabel" where id=2;
update "tabel" set id=id-1 where id >2;
Svenne
--
Mail usenet@krap.dk - svenne@krap.dk - PGP key id : 0xDF484022
ICQ: 5434480 - http://www.krap.dk - http://www.krap.net
PGP Key http://keys.pgp.dk:11371/pks/lookup?op=get&search=0xDF484022
| |
Christian Flintrup (28-07-2001)
| Kommentar Fra : Christian Flintrup |
Dato : 28-07-01 22:50 |
|
Svenne Krap <usenet@krap.dk> wrote:
> delete from "tabel" where id=2;
> update "tabel" set id=id-1 where id >2;
Det ser da godt ud ellers - hvorfor har jeg ikke lyst til at gøre det?
:)
Hvis det er pga. at det sløver systemet, så har jeg max 20 rækker i
denne tabel.
Det er til en autoresponder, hvor brugere får tilsendt nyhedsbreve efter
x antal dage. Hver række i tabellen indeholder så et predefineret brev
samt et tidsinterval.
Derfor behøver jeg en måde at relatere til fx "brev nr 3" - det er
egentligt ligemeget hvad dette brev indeholder - bare det er nr. 3 der
bliver udsendt.
Svenne, tak for din mail i øvrigt. Som du måske har opdaget, har mine 2
spørgsmål i gruppen relevans til hinanden.
--
Mange hilsener
Christian Flintrup
| |
Mads Lie Jensen (29-07-2001)
| Kommentar Fra : Mads Lie Jensen |
Dato : 29-07-01 06:31 |
|
On Sat, 28 Jul 2001 23:50:27 +0200, junk@osxhacks.com (Christian
Flintrup) wrote:
>Derfor behøver jeg en måde at relatere til fx "brev nr 3" - det er
>egentligt ligemeget hvad dette brev indeholder - bare det er nr. 3 der
>bliver udsendt.
SELECT brev FROM breve LIMIT 3,1
... kan sikkert bruges (har ikke testet det)
--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
Directory Opus - nu også til windows - http://www.gpsoft.com.au
| |
Svenne Krap (29-07-2001)
| Kommentar Fra : Svenne Krap |
Dato : 29-07-01 23:55 |
|
On Sat, 28 Jul 2001 23:50:27 +0200, junk@osxhacks.com (Christian
Flintrup) wrote:
>Svenne Krap <usenet@krap.dk> wrote:
>
>> delete from "tabel" where id=2;
>> update "tabel" set id=id-1 where id >2;
>
>Det ser da godt ud ellers - hvorfor har jeg ikke lyst til at gøre det?
>:)
Fordi en artifical primary key har du som hovedregel ikke lyst til at
ændre på. Har du lyst til at ændre på den som i dit tilfælde, bør den
ikke være primary key.
Såvidt jeg kan se, er det du skal bruge praktisk talt bare muligheden
for at trække række x ud af tabellen, der kan du, som både jeg og
andre har svaret bruge
select .... limit x,1
Primary key bruges jo til at identificere en række entydigt og for
evigt (ikke helt ulig dit personnummer :)
Det er derfor du ikke har lyst til det.. Ikke fordi det er teknisk
svært eller umuligt.
/Svenne
--
Mail usenet@krap.dk - svenne@krap.dk - PGP key id : 0xDF484022
ICQ: 5434480 - http://www.krap.dk - http://www.krap.net
PGP Key http://keys.pgp.dk:11371/pks/lookup?op=get&search=0xDF484022
| |
Christian Flintrup (30-07-2001)
| Kommentar Fra : Christian Flintrup |
Dato : 30-07-01 01:00 |
|
Svenne Krap <usenet@krap.dk> wrote:
> Det er derfor du ikke har lyst til det.. Ikke fordi det er teknisk
> svært eller umuligt.
OK. Tusind tak for hjælpen alle sammen - så vil jeg bruge limit til det.
--
Christian
| |
|
|