08. november 2010 - 15:23Der er
13 kommentarer og 2 løsninger
Ændre text til varchar
Hej eksperter
Jeg er skiftet til mysql 5.1 og her er det åbenbart ikke muligt at have "blank" standardværdi, hvis man vælger "text". Forudfyldes altid med "None", hvilket giver problemer ved f.eks. "Replace".
Jeg har derfor forsøgt at ændre til "Varchar", men her er der stor forskel på, hvor meget jeg kan sætte længden til. Nogle kan ændres til 65000, mens jeg kun kan indtaste en længde på 300 ved andre - hvordan hænger det lige sammen? Fejlen i mysql er:
SQL-forespørgsel:
ALTER TABLE `Sider04112010` CHANGE `Tabeller` `Tabeller` VARCHAR( 1000 ) CHARACTER SET latin1 COLLATE latin1_danish_ci NOT NULL DEFAULT ''
MySQL returnerede:
#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
Det er sådan at du samlet hen over alle kolonner maksimalt kan bruge 65535 bytes, hvorfor du for nogle kan have 100 tegn, og andre kan have 1.000 tegn.
Dette kan kun omgås ved at bruge TEXT, da denne ligges "for sig" og derfor kan indholde vilkårligt meget tekst.
Så min anbefaling til dig må være at du ændrer din REPLACE til at tage højde for None og så bruger TEXT.
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.