Avatar billede straszek Praktikant
24. november 2001 - 12:39 Der er 18 kommentarer og
1 løsning

tildele unikt nummer

Jeg har en database med en frygtelige masse poster. Jeg har nu fået bruge for at hver post har et unikt nummer, kan det tildeles automatisk til de allerede oprettede poster og til fremtidige poster.

Nummert skal være fortløbende.

Jeg bruger phpMyadmin til sql administration.

M.v.h. Søren
Avatar billede cyberdude Nybegynder
24. november 2001 - 12:44 #1
du går ind og tilføjer et felt
kal det hvad du nu syntes  eks. id
typpe vælger du int
length sætter du til 11
det skal være et \"not null\"
i ekstra vælger du \"auto inc....\"
så skulle det være der for alle tidligere poster og samtlige fremtidige!

Avatar billede cyberdude Nybegynder
24. november 2001 - 12:48 #2
Når du er logget ind i phpmyadmin ser du følgende

    Run SQL query/queries on database ........

Indsæt dette

ALTER TABLE 1 ADD id INT (11) not null auto_increment


HUSK at ændre der hvor jeg har skrevet \"1\" til det tabel navn der skal ændres på!
Avatar billede straszek Praktikant
24. november 2001 - 12:54 #3
jeg får fejlmeddelsen:

Incorrect table definition; There can only be one auto column and it must be defined as a key

Hvilket jeg ikke fatter, da de tre andre felter i tabellen er rene tekst felter uden andet tilføjet?!

Søren
Avatar billede codebase Praktikant
24. november 2001 - 13:00 #4
set kollonen som primær
Avatar billede straszek Praktikant
24. november 2001 - 13:05 #5
Får stadig:

ALTER TABLE TP ADD ID INT (11)  not null AUTO_INCREMENT
MySQL returnerede: Incorrect table definition; There can only be one auto column and it must be defined as a key

Avatar billede cyberdude Nybegynder
24. november 2001 - 13:13 #6
Så gå ind og opret feltet manuelt... kan ikk elige huske syntaksen for det når man indsætter det på den måde!

Så brug den metode som jeg skrev i mit første indlæg, og så maker at det skal være et primary felt!
Avatar billede cyberdude Nybegynder
24. november 2001 - 13:20 #7
okay her kommer så den besværlige måde :

Opret feltet med følgende komando
ALTER TABLE TP ADD ID INT (11) not null

gå så ind i oversigten og find tabellen TP id for feltet id klikker du nu på \"Primary\"
så bliver du spurgt om du virkelig vil det, dertil svare du ja

derefter klikker på change feltet og vælger så auto_incr......

så skulle det virke!
Avatar billede straszek Praktikant
24. november 2001 - 13:24 #8
>Cyberdude

det give nu fejlen:
ALTER TABLE TP DROP PRIMARY KEY, ADD PRIMARY KEY(id)
MySQL returnerede: Duplicate entry \'0\' for key 1


Avatar billede cyberdude Nybegynder
24. november 2001 - 13:36 #9
øhhh og du har gjordt det i den rækkefølge?
Avatar billede straszek Praktikant
24. november 2001 - 13:43 #10
Først har jeg kørt:

ALTER TABLE TP ADD ID INT (11) not null

Dernæst går jeg ind i tabellen TP og under feltet id klikker jeg på primær, og derefter på ja ( ALTER TABLE TP DROP PRIMARY KEY, ADD PRIMARY KEY(ID)? )

og det giver meddelsen:

Duplicate entry \'0\' for key 1
Avatar billede cyberdude Nybegynder
24. november 2001 - 13:46 #11
så er jeg på herens mark...........

tænker lige lige.....
Avatar billede straszek Praktikant
24. november 2001 - 13:50 #12
Kan det måske have noget med phpmyadmin at gøre? - jeg har root adgang til serveren, men jeg ved ikke hvordan man \"kobler\" på sql fra en terminal promt


Søren
Avatar billede cyberdude Nybegynder
24. november 2001 - 13:54 #13
det skulle ikke have noget at sige. jeg sider også som root på den server jeg tester på!
Avatar billede cyberdude Nybegynder
24. november 2001 - 14:01 #14
hm du er nød til at gøre det på en lidt langsommere måde.....

klik på tabellen TP
og find følgende sted

Tilføj nyt felt:

klik så på \"go\"
og udfyld det skema du ser med de oplysninger du vil have
id
INT
11
SKAL VÆRE BLANK
SKAL VÆRE BLANK
NOT NULL
SKAL VÆRE BLANK
auto_increment
Og maker \"Primary\"
Avatar billede cyberdude Nybegynder
24. november 2001 - 14:02 #15
så burde den være der!

Du skal dog lige huske at slette det id felt vi har lavet tidligere førend du gør ovenstående!
Avatar billede straszek Praktikant
24. november 2001 - 14:09 #16
Det er jo det jeg har gjort hele tiden  (ALTER TABLE TP ADD id INT (11)  not null AUTO_INCREMENT
-) og det giver stadig meddelsen

MySQL returnerede: Incorrect table definition; There can only be one auto column and it must be defined as a key

Avatar billede cyberdude Nybegynder
24. november 2001 - 14:14 #17
så er det jo heller ikke det du har gjordt.......

du SKAL sætte \"flueben\" i feltet primary

Hvis du har sat flueben deri, så er det fordi du har et andet felt der har en \"auto_incr..\" felt...?

Avatar billede cyberdude Nybegynder
24. november 2001 - 14:19 #18
ja nu få rjeg også selv samme fejl (efter at have puttet nogle data ind i et af de andre felter i tebellen)

Så ved jeg det ikke!
Avatar billede straszek Praktikant
24. november 2001 - 14:41 #19
Det ved jeg heller ikke, men jeg eksporterede alle data i min tabel til en tekstfil, slettede tabellen og oprette den igen men nu med et id felt. Herefter importerede jeg dataene igen, og nu har de alle fået et id.

Søren
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