Avatar billede clausberg Nybegynder
18. juni 2005 - 18:51 Der er 14 kommentarer og
1 løsning

længde/værdi i MySql

Jeg sidder og boxer med et problem!

Jeg skal oprette en database i MySql, men dette her dur ikke:

CREATE TABLE `venner` (

`id` INT( 6 ) DEFAULT '0' NOT NULL AUTO_INCREMENT ,
`titel` VARCHAR( 75 ) NOT NULL ,
`antal` VARCHAR( 4 ) NOT NULL ,
`indhold` LONGTEXT( 500 ) NOT NULL ,
`opstartsfase` LONGTEXT( 500 ) NOT NULL ,
`tilbehør` TEXT( 100 ) NOT NULL ,
`kategori` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( `id` , `titel` , `antal` , `indhold` , `opstartsfase` , `tilbehør` , `kategori` )

Jeg får en fejlmelding der siger noget i retningen af at jeg har angivet for mange karakterer!?

I "indhold" og "opstartsfase" skal der være en lang tekst (minimum 500 karakterer)...
Hvad gør jeg for at min DB accepterer det
Og hvar er finten med NOT NULL???? (eller NULL)

:-D
Avatar billede erikjacobsen Ekspert
18. juni 2005 - 18:56 #1
Du skal nok bare

CREATE TABLE `venner` (

`id` INT( 6 ) DEFAULT '0' NOT NULL AUTO_INCREMENT ,
`titel` VARCHAR( 75 ) NOT NULL ,
`antal` VARCHAR( 4 ) NOT NULL ,
`indhold` LONGTEXT NOT NULL ,
`opstartsfase` LONGTEXT NOT NULL ,
`tilbehør` TEXT NOT NULL ,
`kategori` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( `id` )
)
Avatar billede clausberg Nybegynder
18. juni 2005 - 19:00 #2
Så får jeg denne besked:


#1170 - BLOB column 'indhold' used in key specification without a key length

???
Avatar billede arne_v Ekspert
18. juni 2005 - 19:12 #3
et LONGTEXT felt kan ikke indgå i en key
Avatar billede arne_v Ekspert
18. juni 2005 - 19:12 #4
bemærk at Erik også ændrede din PRIMARY KEY
Avatar billede arne_v Ekspert
18. juni 2005 - 19:13 #5
Hvis 500 er max. længde så er TEXT iøvrigt nok (max. længde er 64 KB for TEXT og
2 GB for LONGTEXT)
Avatar billede nielle Nybegynder
18. juni 2005 - 19:15 #6
Når du skriver "LONGTEXT( 500 )" så fortæller du MySQL at feltet skal være *maks* 500 tegn langt. Dette kommer jo nok lidt i konflikt med dit krav om "minimum 500 karakterer".
Avatar billede arne_v Ekspert
18. juni 2005 - 19:20 #7
LONGTEXT(500) er ikke valid MySQL syntax så det fortæller ikke MySQL ret meget
Avatar billede nielle Nybegynder
18. juni 2005 - 19:37 #8
Det har du givetvis ret i - så meget kender jeg heller ikke til MySQL.

Men det var hvad det ville have fortalt MySQL hvis det var validt. Talangivelserne i paranteserne er maksimumværdier - ikke minimumværdier.
Avatar billede arne_v Ekspert
18. juni 2005 - 19:39 #9
jeg tror at han mener at maksimum for feltet mindst skal være 500 (og at VARCHAR derfor
ikke kan bruges)
Avatar billede arne_v Ekspert
18. juni 2005 - 19:39 #10
og iøvrigt

NOT NULL => feltet skal udfyldes

NULL => feltet behøver ikke at blive udfyldt
Avatar billede clausberg Nybegynder
18. juni 2005 - 20:42 #11
Ja nu virker det - takker!

Lige en sidste ting...
Nu har jeg sat ID til primary key, men hvad betyder det????

Smider i alle 3 et svar - deler midt over
Avatar billede arne_v Ekspert
18. juni 2005 - 21:22 #12
primary key er et felt (eller flere felter) som er garanteret unikke og kan bruges
til at identificere en række med
Avatar billede arne_v Ekspert
18. juni 2005 - 21:22 #13
svar
Avatar billede nielle Nybegynder
18. juni 2005 - 21:26 #14
Nej tak - jeg har kun biddraget med lettere misvisende oplysninger :^)
Avatar billede clausberg Nybegynder
18. juni 2005 - 21:49 #15
Med tak for hjælp :)
Fortsat god aften
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