Ankündigung

Einklappen
Keine Ankündigung bisher.

DB Portierung ins neue Mysql: Error 1060 duplicate column

Einklappen

Neue Werbung 2019

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

  • DB Portierung ins neue Mysql: Error 1060 duplicate column

    Moins,

    bin nach Vista gewächselt und hab die Chance wahrgenommen, die neueste Mysql Version zu installieren.

    Meine Portierungsmethode ist vielleicht zu intuitiv, aber sie funktioniert: ich hab einfach den mysql\data\<datenbankname> - Ordner kopiert.

    So weit ich mitbekommen habe, hat nur eine der 23 Tabellen das oben genannte Problem.

    mysql> explain auction;
    +-------------------+---------------------------+------+-----+---------------------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-------------------+---------------------------+------+-----+---------------------+-------+
    | auctionId | bigint(20) unsigned | NO | PRI | 0 | |
    | SellerId | varchar(45) | YES | | NULL | |
    | actualBid | decimal(6,2) unsigned | YES | | 0.00 | |
    | porto | decimal(6,2) unsigned | YES | | NULL | |
    | foil | tinyint(1) | YES | | NULL | |
    | condition | varchar(10) | YES | | NULL | |
    | numberCards | tinyint(3) unsigned | YES | | NULL | |
    | end | datetime | NO | MUL | 0000-00-00 00:00:00 | |
    | numberBids | smallint(5) unsigned | YES | | NULL | |
    | category | varchar(10) | YES | | NULL | |
    | actualBidder | varchar(30) | YES | | NULL | |
    | pictureURL | text | YES | | NULL | |
    | minimumBid | decimal(6,2) unsigned | YES | | NULL | |
    | type | tinyint(3) unsigned | YES | MUL | NULL | |
    | cardId | int(10) unsigned | YES | MUL | 0 | |
    | ended | tinyint(3) unsigned | YES | | 0 | |
    | deltatoaverage | float | YES | | NULL | |
    | enabled | tinyint(3) unsigned | YES | MUL | NULL | |
    | notes | text | YES | | NULL | |
    | numberAuctionUsed | int(10) unsigned | YES | MUL | NULL | |
    | cardAverage | float | YES | MUL | NULL | |
    | auctionAverage | float | YES | MUL | NULL | |
    | descriptionPath | varchar(200) | NO | | | |
    | title | varchar(200) | YES | | NULL | |
    | idcardwant | int(10) unsigned zerofill | YES | MUL | NULL | |
    | bombid | float unsigned zerofill | YES | | NULL | |
    | bomstatus | int(10) unsigned | YES | | NULL | |
    +-------------------+---------------------------+------+-----+---------------------+-------+

    mysql>ALTER TABLE `magicdb`.`auction` MODIFY COLUMN `porto` DECIMAL(6,2) UNSIGNED NOT NULL;

    MySQL Error Number 1060
    Duplicate column name 'ended'



    Versteh ich nämlich leider nicht. Es gibt doch keine 2 Spalten mit dem Namen 'ended'. Oder gibt es noch andere Erklärungen? Dieser Fehler tritt bei jedem beliebigen Befehl auf, der die Struktur oder Inhalt verändert.

    Vielen Dank im Voraus.
    Marco

  • #2
    Hallo und willkommen im Forum

    Wenn man nach dem Fehler "1060 site:mysql.com" sucht, bekommt man ziemlich viele Bug-Reports. Vielleicht ackerst du die zuerst durch, vielleicht hilft dir das ja bereits.

    Kommentar


    • #3
      ok ich lös das problem mal auf:

      Seit der neuen Version von mysql wird schärfer auf die Regeln bestanden.
      1. bei SQL-Statements (insbesondere joins) müssen viel öfter als früher (vielleicht jetzt immer) Spalten mit Tabellen genannt werden.
      --> SELECT tabelle.id from tabelle, tabelle2;
      frühere Version hat auch dies erlaubt da in tabelle2 keine Spalte id vorkam:
      --> SELECT id from tabelle, tabelle2;

      (siehe zu Punkt 1 meinen nächsten Eintrag)

      Zweitens und die Lösung meines Problems oben, sind die Indexe, die ich in einer älteren Version anlegte. Versehendlich mit der doppelten Spalte 'ended'. Jetzt sind die Regeln verschärft worden, was mich nicht sofort zum Lösungsansatz führte.

      Vielen Dank
      Marco

      Kommentar


      • #4
        Man lernt ja und den oben genannten ersten Punkt möchte ich verneinen. Dort hat sich nichts geändert. Ich hatte nur damit gesorgt, dass das NUN reservierte Wort CONDITION als Spaltenname erkannt wird.

        Schönen Abend noch
        Marco

        Kommentar


        • #5
          Ok ... ich hätte sonst noch auf "nicht-MyISAM" getippt ... denn soweit mir bekannt lässt InnoDB diese Art der "intuitiven Portierungsmethode" nicht zu ...

          Die Problematik mit den Indexen hatte ich auch - allerdings kam das über ein Backup mit phpMyAdmin zustande. Seit dem habe ich dafür meinen exec-Befehl (ohne collate), der mir ein Vollbackup macht und als .sql ablegt - nur bei Bedarf.

          Kommentar

          Lädt...
          X