Wie kann ich die varchar Größe nachträglich ändern?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wie kann ich die varchar Größe nachträglich ändern?

    Hallo,

    ich habe eine Tabelle mit urls drinne und mochte den varchar(50) wert in der spalte url nachträglich auf varchar(1024) erhöhen.

    ich habe das ausprobiert:

    ALTER TABLE `beitraege` ALTER COLUMN `url` varchar(1024);


    aber es funzt nicht..

    thank im voraus!

  • #2
    varchar(1024);
    MySQL Version? Fehlermeldung?

    Kommentar


    • #3
      Tja, varchar geht leider nur bis 255 Zeichen

      Da musst du wohl schon ein Text-Feld nehmen. Sie sind aber noch um einiges größer (65,535 Zeichen)
      signed oder unsigned... das ist hier die Frage

      Kommentar


      • #4
        Code:
        ALTER TABLE tablename MODIFY columnname varchar(100);
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Original geschrieben von case
          Tja, varchar geht leider nur bis 255 Zeichen
          Das ist so nicht (mehr) ganz richtig:

          [NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name]

          A variable-length string. M represents the maximum column length in characters. The range of M is 0 to 65,535. The effective maximum length of a VARCHAR is subject to the maximum row size (65,535 bytes, which is shared among all columns) and the character set used. For example, utf8 characters can require up to three bytes per character, so a VARCHAR column that uses the utf8 character set can be declared to be a maximum of 21,844 characters.

          MySQL stores VARCHAR values as a one-byte or two-byte length prefix plus data. The length prefix indicates the number of bytes in the value. A VARCHAR column uses one length byte if values require no more than 255 bytes, two length bytes if values may require more than 255 bytes.

          Kommentar


          • #6
            Original geschrieben von TobiaZ
            Fehlermeldung?
            Ich habe es übrigens mal kurz ausprobiert: Es kommt keine Fehlermeldung, es funktioniert einfach nicht... aber es ist natürlich die Länge...
            signed oder unsigned... das ist hier die Frage

            Kommentar


            • #7
              Original geschrieben von case
              Ich habe es übrigens mal kurz ausprobiert: Es kommt keine Fehlermeldung, es funktioniert einfach nicht... aber es ist natürlich die Länge...
              Auch hier die Frage nach der eingesetzten Version?

              Kommentar


              • #8
                also ich habe es gerade nochmal mit utf-8 ausprobiert...

                mysql 4.1.11:

                bei utf-8:

                aus varchar > 255 wird einfach ein Text-Feld

                bei latin_1:

                es gibt keine Fehlermeldung und es passiert einfach nichts


                mysql 5.0.45:

                man kann größere VarChar-Felder anlegen, egal welche kollation
                signed oder unsigned... das ist hier die Frage

                Kommentar


                • #9
                  Original geschrieben von case
                  Ich habe es übrigens mal kurz ausprobiert: Es kommt keine Fehlermeldung, es funktioniert einfach nicht... aber es ist natürlich die Länge...
                  Dann hast du die unterdrückt, weil die Syntax ist ganz klar falsch:
                  Code:
                  ALTER TABLE `tab2` ALTER COLUMN `name` VARCHAR( 1024 )
                  führt zu
                  Code:
                  #1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei 'varchar(1024)' in Zeile 1
                  Gruss
                  H2O

                  Kommentar


                  • #10
                    Code:
                    ALTER TABLE `tbl` CHANGE `fld` `fld` VARCHAR(1024)

                    Kommentar


                    • #11
                      nein, ich habe einfach nur den Versuch gemacht, es zu ändern und habe nicht die Syntax des TS verwendet...
                      signed oder unsigned... das ist hier die Frage

                      Kommentar


                      • #12
                        Danke !

                        PHP-Code:
                        ALTER TABLE `tblCHANGE `fld` `fldVARCHAR(1024); 

                        hat funktionier!

                        Kommentar

                        Lädt...
                        X