Jnnbo: SQL Befehl - Daten von A nach B kopieren

Moin,

mir ist ein großer / schwerer Fehler unterlaufen.

Ich hatte in der Datenbank meinem Feld "type" varchar(1) verpasst, hab aber nicht beachtet, dass ich in der zweiten Tabelle schon im zweistelligen Bereich bin. Jetzt wurde aus z.B. 19 eine 1 und aus 25 eine 2 :/ Bei über 5000 Artikel ist dieses sehr ärgerlich.

Ist es möglich, direkt im SQL also in PHPMyAdmin einen Wert von A nach B zu kopieren?

Im Feld "pkategorie" steht der richtige, dieser muss jetzt in das Feld "type" eingetragen werden.

Gibt es eine einfache Möglichkeit?

  1. Liebe Mitdenker, liebe Wissende, liebe Neugierige,

    Moin,

    mir ist ein großer / schwerer Fehler unterlaufen.

    Ich hatte in der Datenbank meinem Feld "type" varchar(1) verpasst, hab aber nicht beachtet, dass ich in der zweiten Tabelle schon im zweistelligen Bereich bin. Jetzt wurde aus z.B. 19 eine 1 und aus 25 eine 2 :/ Bei über 5000 Artikel ist dieses sehr ärgerlich.

    Ist es möglich, direkt im SQL also in PHPMyAdmin einen Wert von A nach B zu kopieren?

    Guck mal im Handbuch nach "update ... select from"

    Spirituelle Grüße
    Euer Robert
    robert.r@online.de

    --
    Möge der wahre Forumsgeist ewig leben!
    1. Liebe Mitdenker, liebe Wissende, liebe Neugierige,

      mir ist ein großer / schwerer Fehler unterlaufen.

      Ich hatte in der Datenbank meinem Feld "type" varchar(1) verpasst, hab aber nicht beachtet, dass ich in der zweiten Tabelle schon im zweistelligen Bereich bin. Jetzt wurde aus z.B. 19 eine 1 und aus 25 eine 2 :/ Bei über 5000 Artikel ist dieses sehr ärgerlich.

      Ist es möglich, direkt im SQL also in PHPMyAdmin einen Wert von A nach B zu kopieren?

      Guck mal im Handbuch nach "update ... select from"

      eine andere Lösung:

      update artikel_2 a2
      join artikel_1 a1 
          on a1.id = a2.id
      set
          a2.preis = a1.preis;
      

      Meine "artikel_2" ist hier die beschädigte Tabelle, die mit Hilfe von "artikel_1" wieder repariert werden soll. Repariert werden durch den Join hier nur diejenigen Datensätze, die in beiden Tabellen vorkommen.

      Spirituelle Grüße
      Euer Robert
      robert.r@online.de

      --
      Möge der wahre Forumsgeist ewig leben!
  2. Hallo,

    Im Feld "pkategorie" steht der richtige, dieser muss jetzt in das Feld "type" eingetragen werden.

    Gibt es eine einfache Möglichkeit?

    sind die Spalten type und pkategorie in der gleichen Tabelle? Dann sollte ein »UPDATE tabelle SET type=pkategorie« helfen - allerdings stellt sich die Frage warum du den gleichen Wert zweimal in der Tabelle stehen hast …

    Gruß,
    Tobias

    1. Hallo tk,

      allerdings stellt sich die Frage warum du den gleichen Wert zweimal in der Tabelle stehen hast …

      da derzeit die Kategorien und die Preiskategorien gleich sind, für später kann ich dieses noch nicht sagen, deshalb sind beide Zahlen derzeit identisch.

      Was ich allerdings nicht verstehe ist, warum hat PHP hier kein Fehler ausgespruckt? Die Zahl war doch größer wie das Feld?

      1. Tach!

        Was ich allerdings nicht verstehe ist, warum hat PHP hier kein Fehler ausgespruckt? Die Zahl war doch größer wie das Feld?

        Weil es kein PHP-Fehler ist. Es ist höchstens ein MySQL-Problem. Und da wird es nur eine Warnung sein - vermutlich je nachdem, wie man sich das System konfiguriert. Warnungen kannst du abfragen, das ist aber umständlicher als bei „echten“ Fehler.

        dedlfix.

  3. Hi,

    Ich hatte in der Datenbank meinem Feld "type" varchar(1) verpasst, hab aber nicht beachtet, dass ich in der zweiten Tabelle schon im zweistelligen Bereich bin. Jetzt wurde aus z.B. 19 eine 1 und aus 25 eine 2 :/ Bei über 5000 Artikel ist dieses sehr ärgerlich.

    Das kann ja nur dann automatisch funktionieren, wenn es eine Zuordnung der Datensätze beider Tabellen gibt.

    Wenn es diese Zuordnung gibt, dann stellt sich die Frage, warum der type überhaupt in beiden Tabellen vorkommt.

    Ganz abgesehen davon:

    • warum ist das ein varchar, wenn Zahlen drinstehen?
    • Du solltest grundsätzlich beim Festlegen der Datentypen die Größe nicht zu knapp wählen.

    cu,
    Andreas a/k/a MudGuard