Sortierung einer kompl. Datenbank ändern

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

  • Sortierung einer kompl. Datenbank ändern

    Wie kann ich die Sortierung von UTF8 auf latin1 einer kompletten Datenbank mit Tabellen und Felder ändern? Bei der Anlegung habe ich die falsche Sortierung gewählt. Ich hoffe man kann das mit einem Befehl für die kompletten Datenbank machen und ich muss nicht in jede Tabelle gehen und dort die Sortierung in den Felder ändern.
    » http://www.htaccess-generator.com

  • #2
    ALTER TABLE, oder?

    Kommentar


    • #3
      PHP-Code:
      $result mysql_query('SHOW tables');
      while (
      row mysql_fetch_assoc($result)) {
        
      alter-table-query

      oder so (falls es wirklich alter-table ist, mysql-Manual hilft weiter ... ich mach sowas immer über pma *zucks*)

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        das mit der while schleife und php gefällt mir schon ganz gut. ich finde es nämlich ziemlich stressig die änderung über das pma zu machen. habe die datenbank geändert, leider wurden dann aber nicht auf einmal die tabellen geändert, also habe ich die tabelle auch noch einzeln erfaßt und geändert, aber auch hier wurden dann die felder nicht geändert. gibt es denn wirklich keine möglichkeit die änderung über das pma durchzuführen, dann aber für die datenbank, tabellen und felder gleicherzeitig? muss ich wirklich in jedes einzelne feld und den wert ändern?
        » http://www.htaccess-generator.com

        Kommentar


        • #5
          exportiere doch einfach die komplette db, per search&replace änderst du die Kollation im kompletten Dump und danach importierst du alles wieder

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            sehr gute idee, zwar auch nicht immer die beste, da der sql dump über 5 mb hat mit daten und ich aber über pma nur max. 2 mb hochladen kann, aber das ist besser als mit dem script.

            welches charset und collation verwendet ihr? ich habe da ständig probleme damit. manchmal weder umlaute nicht richtig importiert, dann kann ich über pma nicht mehr suchen etc...

            was ist die beste einstellung? vielen dank für eure antwort..
            » http://www.htaccess-generator.com

            Kommentar


            • #7
              utf8_unicode_ci
              Wenn Umlaute kaputt sind, hast du was beim Exportieren oder Importieren falsch gemacht, das ist aber vollkommen unabhängig von der Kollation.

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                ich weiss nicht ob es dir weiter hilft, aber ich arbeite gerne mit utf8 und sortirung von utf8 war immer ein wenig zieckig.
                da ich in meinem db als russische als auch die deutsche worter habe, erstellte ich extra 2 tabellen, wo es nur die Buchstaben von einer sprache und dazugehörige nummer im alphabet abgespeichert habe.
                also eine Tabelle für deutsch und eine für russisch.

                buchstabe | alphabetnummer

                wenn ich die Texte für eine bestimmt sprache sortieren wollte(leider nur nach erster Buchstabe, was mir eigentlich ausreichte)
                dann habbe ich die Tabell mit
                ...inner join sprachtabelle on left(textspalte,1)=sprachtabelle.buchstabe

                order by sprache.alphabetnummer
                Slava
                bituniverse.com

                Kommentar


                • #9
                  also in den importdateien stehen die umlaute... ich habe immer

                  CREATE TABLE ...
                  ...CHARSET=utf8

                  verwendet. Werde es dann mal mit

                  CHARSET=utf8_unicode_ci
                  » http://www.htaccess-generator.com

                  Kommentar


                  • #10
                    komisch... habe gerade...

                    PHP-Code:
                    CREATE TABLE `_imp_manufacturers2` (
                      `
                    manufacturers_idint(11NOT NULL auto_increment,
                      `
                    manufacturers_namevarchar(32NOT NULL default '',
                      
                    PRIMARY KEY  (`manufacturers_id`)
                    ENGINE=MyISAM DEFAULT CHARSET=utf8_unicode_ci COLLATE=utf8_unicode_ci AUTO_INCREMENT=21 
                    ausgeführt und nun kommt ne meldung mit

                    PHP-Code:
                    #1115 - Unknown character set: 'utf8_unicode_ci' 
                    utf8_unicode_ci ist aber in pma vorhanden... was nun?
                    » http://www.htaccess-generator.com

                    Kommentar


                    • #11
                      Original geschrieben von bweichel
                      #1115 - Unknown character set: 'utf8_unicode_ci'
                      Es gibt nun mal kein character set 'utf8_unicode_ci'.

                      http://dev.mysql.com/doc/refman/4.1/...t-general.html
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        ok, das geht... ist das dann auch so richtig? also habe ich jetzt die gleichen einstellungen wie du?

                        PHP-Code:
                        CREATE TABLE `_imp_manufacturers2` (
                          `
                        manufacturers_idint(11NOT NULL auto_increment,
                          `
                        manufacturers_namevarchar(32NOT NULL default '',
                          
                        PRIMARY KEY  (`manufacturers_id`)
                        ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=21 
                        » http://www.htaccess-generator.com

                        Kommentar


                        • #13
                          ich habe soeben mal versucht in einem feld etwas zu suchen... um genau zu sein, in einem varchar-feld... jetzt kommt folgende meldung...

                          PHP-Code:
                          MySQL meldet:  

                          #1267 - Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'like' 
                          ich sind die daten jetzt im utf8_general_ci format oder was? wenn ja, wie kann ich den die daten, also inhalte entsprechend ändern?
                          » http://www.htaccess-generator.com

                          Kommentar


                          • #14
                            Willkommen in der bweichel-Show, der Show mit dem, wo sich immer nur im Kreis drehen tut ...
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              jo, genau... im kreis... dann antworte doch auch mal... ich peil`s halt nicht... und dann könnte man ja schon mal helfen... oder? ich habe überall charset und die collation entsprechend eingestellt... überall... es steht nix anderes mehr drin... jetzt meine frage ob es auch sein kann das die bereits importieren daten noch mit der alten sortierung versehen sind... ansonsten kann ich mir es nicht erklären woher der illegale mix kommen soll... danke...
                              » http://www.htaccess-generator.com

                              Kommentar

                              Lädt...
                              X