Avatar billede solari Nybegynder
13. april 2005 - 21:46 Der er 10 kommentarer og
1 løsning

Automatisk rettelser af en rækkefølje

Hej alle MySQL eksperter
Jeg har en databaser:

Person
+-----------+-------------+------------+
| person_id | person_navn | rækkefølge |
+-----------+-------------+------------+
|        41 | Bo          |          1 |
+-----------+-------------+------------+
|        67 | Anne        |          2 |
+-----------+-------------+------------+
|        75 | Hans        |          3 |
+-----------+-------------+------------+
|        79 | Jakob      |          4 |
+-----------+-------------+------------+

hvis jeg nu gerne vil slette personen Anne, vil databasen se sådan ud:

Person
+-----------+-------------+------------+
| person_id | person_navn | rækkefølge |
+-----------+-------------+------------+
|        41 | Bo          |          1 |
+-----------+-------------+------------+
|        75 | Hans        |          3 |
+-----------+-------------+------------+
|        79 | Jakob      |          4 |
+-----------+-------------+------------+

så kunne jeg godt tænke mig at databasen selv kunne dække hullet i rækkefølgen. så databasen så sådan ud i stedet

Person
+-----------+-------------+------------+
| person_id | person_navn | rækkefølge |
+-----------+-------------+------------+
|        41 | Bo          |          1 |
+-----------+-------------+------------+
|        75 | Hans        |          2 |
+-----------+-------------+------------+
|        79 | Jakob      |          3 |
+-----------+-------------+------------+

er der en metode til de i MySQL 4.1(InnoDB) ?

På forhånd tak.
Avatar billede arne_v Ekspert
13. april 2005 - 21:49 #1
drop den kolonne i databasen

og generer en sådan variabel i din applikation
Avatar billede barklund Nybegynder
13. april 2005 - 21:52 #2
Eller først udtræk hendes position i rækkefølgen, slet rækken og opdater alle som "rækkefølge = rækkefølge - 1 WHERE rækkefølge > annes_rækkefølge".
Avatar billede barklund Nybegynder
13. april 2005 - 21:54 #3
Men ja, det er absolut mere praktisk at have udenfor - det skal ikke foregå inden i databasen, det er for upraktisk.
Avatar billede solari Nybegynder
14. april 2005 - 00:02 #4
Okay det bliver også ordent i php som det er nu.

Det var bare om der var en disederet funktion (eller en eller anden form for indexsering) i MySQL 4.1 der kunne håndtere det.

Men rigtig mange tak for de enormt hurtige svar.

kan man give jer begge to point?
Avatar billede barklund Nybegynder
14. april 2005 - 00:11 #5
Ikke uden, at vi lægger nogle svar - som jeg netop har gjort og som arne_v sikkert vil gøre ved lejlighed :)
Avatar billede arne_v Ekspert
14. april 2005 - 06:57 #6
.
Avatar billede solari Nybegynder
28. april 2005 - 11:16 #7
Sorry arne_v der kludrede jeg vist i det. du blev ikke accepteret. ved ikke helt hvordan jeg kan lave det om.

Synes eksperten er en rigtig genial side. men har har altid haft problemmer med navigere rundt. (Det nok mig der er en ofre for teknikens verden)
Avatar billede barklund Nybegynder
28. april 2005 - 11:34 #8
arne_v, skal jeg lave et spørgsmål med de tredive point til dig?
Avatar billede arne_v Ekspert
28. april 2005 - 12:15 #9
jo tak
Avatar billede barklund Nybegynder
28. april 2005 - 12:35 #10
Avatar billede solari Nybegynder
04. maj 2005 - 22:42 #11
Det er godt i selv kan kan finde ud af det :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester