Hank the knife: mysql / Tabelle auf Decimal ändern

Hi,

MODIFY WarenEK decimal(10,2) NULL DEFAULT NULL COMMENT ''

Gibts eine Query, mit der ich zuvor alle Daten in der Tabelle WarenEK, die z.b. im Format 10,50 oder 3,99 gespeichert sind, sichern kann?

Weil ein einfaches MODIFY dieser Spalte würde ja sicher dazu führen, dass die Werte hinter dem Komma abgeschnitten werden. Oder muß ich das über eine "Dienstsprache" bewekstelligen?

Grüße, Hank

  1. Hallo,

    Gibts eine Query, mit der ich zuvor alle Daten in der Tabelle WarenEK, die z.b. im Format 10,50 oder 3,99 gespeichert sind, sichern kann?

    Erstelle ein Backup Deiner Tabelle.
    Füge eine neue Spalte mit Deinem gewünschten Datentyp ein.

    Solange die Daten in der neuen Spalte nicht wunschgemäß aussehen
        Fülle die Spalte durch ein entsprechendes UPDATE-Statement, das die
        Originaldaten über String- und CAST-Operationen umwandelt.
    Ende Solange

    Lösche die Originalspalte
    Benenne die neue Spalte um (neuer Name gleich Name der Originalspalte)

    Freundliche Grüße

    Vinzenz

    1. Freundliche Grüße

      Vinzenz

      Hi Vinzenz,

      habs anders gelöst, aber danke dennoch :-)

      Grüße, Hank

      1. »» Freundliche Grüße
        »»
        »» Vinzenz

        ...andere Frage noch ab Dich.
        du hast mir zuletzt schonmal sehr gut geholfen. Und ich hatte Dir das fertige Script hier mal ins Forum gepostet mit der Frage, ob Du da mal nen Blick drüber werfen kannst.

        Hast Du vermutlich übersehen und ich wollt kein Doppelpost machen. Da es aber nun von Seite 1 verschwunden ist, frag ich hier nochmal nach:

        Kannst Du mal schauen, ob das so funktioniert, wie gedacht und ich mir nicht versehentlich bei ungünstigen Bedingungen was kaputt mache?

        Originalthread

          
          
        function dir_rekursiv($verzeichnis)  
        {  
             $handle =  opendir($verzeichnis);  
          
             while ($datei = readdir($handle))  
             {  
                  if ($datei != "." && $datei != ".." && $datei != "backup")  
                  {  
                       if (is_dir($verzeichnis.$datei)) // Wenn Verzeichniseintrag ein Verzeichnis ist  
                       {  
                            // Erneuter Funktionsaufruf, um das aktuelle Verzeichnis auszulesen  
                            dir_rekursiv($verzeichnis.$datei.'/');  
                       }  
                       else  
                       {  
                            $teile = explode(".", $datei);  
                            $datei_ohne_endung=$teile[0];  
                            $endung=$teile[1];  
                            $laenge = strlen($datei_ohne_endung)-1; // string-laenge bestimmen, und  
                            // 1 abziehen, weil bei 0 angefangen  
                            // wird zu zaehlen..  
          
                            if (($endung != "gif") && (is_numeric($datei_ohne_endung[$laenge])))  
                            {  
                                 $datei_ohne_endung = preg_replace("/\d*$/", "", $datei_ohne_endung);  
                                 $backupliste = glob("./backup/$datei_ohne_endung*.$endung");  
                                 natsort ($backupliste);  
                                 $hoechste_dateinummer = array_pop($backupliste);  
                                 $teile_hoechste_dateinummer = explode(".", $hoechste_dateinummer);  
                                 $datei_ohne_endung_hoechste_dateinummer=$teile_hoechste_dateinummer[1];  
                                 preg_match("/\d*$/", $datei_ohne_endung_hoechste_dateinummer, $treffer);  
                                 //echo("$datei_ohne_endung_hoechste_dateinummer<br>");  
                                 //print_r($treffer);  
                                 $i=$treffer[0];  
                                 $neuer_index=$i+1;  
                                 $tofile="backup/$datei_ohne_endung$neuer_index".".$endung";  
                                 echo ("tf: $tofile<br>");  
                                 rename($verzeichnis.$datei, $tofile);  
          
                            }  
                       }  
                  }  
             }  
          
             closedir($handle);  
        }  
          
        $verz="./";  
          
        if (!file_exists("$verz/backup"))  
        {  
             mkdir("$verz/backup");  
        }  
          
        dir_rekursiv($verz);  
        echo ("fertig");  
          
        
        

        Grüße, Hank (auch schonmal Karlo :-)

        1. Hello,

          Kannst Du mal schauen, ob das so funktioniert, wie gedacht und ich mir nicht versehentlich bei ungünstigen Bedingungen was kaputt mache?

          Originalthread

          Du hast aber scheinbar meine Ratschläge nur als Schläge empfunden, nicht als Rat?
          Sonst hättest Du sie sicherlich berücksichtigt. :-)

          function dir_rekursiv($verzeichnis)
          {
               $handle =  opendir($verzeichnis);

          #       while ($datei = readdir($handle))
                 while (false!==($datei = readdir($handle)))

          {
                    if ($datei != "." && $datei != ".." && $datei != "backup")
                    {
                         if (is_dir($verzeichnis.$datei)) // Wenn Verzeichniseintrag ein Verzeichnis ist
                         {
                              // Erneuter Funktionsaufruf, um das aktuelle Verzeichnis auszulesen
                              dir_rekursiv($verzeichnis.$datei.'/');

          #                hier hängt sich das Script auf in einer Endlosschliefe, wenn es sich
          #                bei dem Verzeichnis um einen Link auf ein Verzeichnis handelt, der auf
          #                eine höhere Ebene desselben Baumes verweist.
          #                Du musst entweder Links auf Verzeichnisse ausschließen von der Bearbeitung
          #                oder eine Liste der aufgelösten Pfade mitschreiben. Wenn dann ein Pfad
          #                (Realpath()) schon in der Liste enthalten ist, wird er nicht nochmal
                           abgearbeitet.

          }
                         else

          [...]

            
            
          Den Rest habe ich mir nicht weiter angeschaut.  
            
            
            
            
          Liebe Grüße aus dem schönen Oberharz  
            
            
          Tom vom Berg  
          ![](http://selfhtml.bitworks.de/Virencheck.gif)  
            
          
          -- 
          Nur selber lernen macht schlau  
          <http://bergpost.annerschbarrich.de>