Avatar billede iceyblue Nybegynder
04. juli 2002 - 13:03 Der er 16 kommentarer og
1 løsning

Feldt i db skal indeholde flere tegn end en varchar kan have!

Hej!
Hvad gør jeg hvis jeg vil gemme et tekstfeldt i min MySQL-database som indeholder en masse tegn. Varchar kan åbenbart kun have 255tegn, men det er jo tit, at man skriver mere i et tekstfeldt. Hvordan gør man det i en db???
Tænker på at lave en side med nyheder, så får jeg brug for en db, som indeholder:

1. id
2. emne
3. dato
4. tekst (Skal kunne indeholde mange tegn)
5. navn

Tænker på, om det overhovede er den rigtige måde at gøre det på, kan godt se at der vil gå en del spilplads, hvis hver row skal have et felt på eks. 1000tegn.
Men hvordan gør man det så??
Avatar billede exp-ralle Nybegynder
04. juli 2002 - 13:10 #1
Vælger Memo(Notat)
Avatar billede muddi Praktikant
04. juli 2002 - 13:10 #2
brug "text"
Avatar billede exp-ralle Nybegynder
04. juli 2002 - 13:11 #3
muddi den kan jo kun have 255 tegn ik
Avatar billede muddi Praktikant
04. juli 2002 - 13:12 #4
eller "longtext"
Avatar billede muddi Praktikant
04. juli 2002 - 13:14 #5
CREATE TABLE `n` (
`id` TINYINT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`emne` CHAR(50) NOT NULL,
`dato` TIMESTAMP NOT NULL,
`tekst` TEXT NOT NULL,
`navn` CHAR(50) NOT NULL
);
Avatar billede muddi Praktikant
04. juli 2002 - 13:15 #6
exp-ralle >> nej, text kan indeholde mere end 255 tegn... jeg bruger den i min egen gæstebog, og der er mange lange indlæg der!
Avatar billede exp-ralle Nybegynder
04. juli 2002 - 13:17 #7
Nå hvorfor står der så i Access at den ikke kan ?

Iceyblue jeg ville bruge Notat hvis jeg var dig, så er du på den sikre side!!!
Avatar billede muddi Praktikant
04. juli 2002 - 13:19 #8
exp-ralle >> Der er ikke noget i mysql der hedder notat! Det her er MySQL og ikke Access! :o)
Avatar billede muddi Praktikant
04. juli 2002 - 13:24 #9
Her er hvad der står om "text" i MySQL-dokumentationen:
"A BLOB or TEXT column with a maximum length of 65535 (2^16 - 1) characters.", og det skulle være rigeligt til et nyhedsscript!

/Muddi
Avatar billede muddi Praktikant
04. juli 2002 - 13:27 #10
Bare glem longtext og mediumtext, som jeg skrev om tidligere... De bruger alt for meget plads:

MEDIUMTEXT A BLOB or TEXT column with a maximum length of 16777215 (2^24 - 1) characters.

LONGTEXT A BLOB or TEXT column with a maximum length of 4294967295 (2^32 - 1) characters.


ps. du kan også bruge BLOB til denne opgave :o)
Avatar billede iceyblue Nybegynder
04. juli 2002 - 16:09 #11
Cool!! Tak skal i have begge to ;) Men performance-mæssigt, er det ok at bruge felter der er tildelt så meget plads??
Avatar billede iceyblue Nybegynder
04. juli 2002 - 16:13 #12
Hov, hvordan virker TIMESTAMP? Jeg havde bare regnet med at bruge en int! Hvor kan man læse om disse, jeg har ikke en bog endnu :(
Avatar billede exp-ralle Nybegynder
04. juli 2002 - 16:45 #13
iceyblue --> Hvad fanden hvorfor får jeg ingenting ? Mit svar var mindst ligeså meget rigtigt og jeg svarede først !!!
Avatar billede exp-ralle Nybegynder
04. juli 2002 - 16:46 #14
Nå... så sorry iceyblue og muddi så ikke kategorien
Avatar billede muddi Praktikant
04. juli 2002 - 17:45 #15
exp-ralle >> *LOL*

iceyblue >> Timestamp bliver automatisk sat, og hvis du ikke angiver nogen længde for feltet, så bliver længden automatisk sat til 14.

Alternativt kunne du bruge DATE som felttype, men så skal du selv sætte datoen, f.eks. ved at bruge NOW() i SQL.

Du kan læse mere om TIMESTAMP på http://www.mysql.com.
http://www.mysql.com/doc/D/A/DATETIME.html

Performance-mæssigt tror jeg ikke du mister noget ved at bruge TEXT-formatet. Jeg har ikke selv haft problemer med det, selvom jeg har lagret store mængder data i dette format.

Tak for point!

/Muddi
Avatar billede muddi Praktikant
04. juli 2002 - 17:49 #16
Du kan også se mere om hvor meget plads hver felttype reserverer her:
http://www.mysql.com/doc/n/o/node_369.html
Avatar billede iceyblue Nybegynder
04. juli 2002 - 19:11 #17
Muddi >> Mange tak for grundig hjælp!!!
Exp-ralle >> Sorry, jeg takker, men een skal jo have de point :(
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