gelöst Duplettenprüfung Artikelnummer

Thema wurde von Anonymous, 2. Juli 2017 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Hallo,

    was mir aufgefallen ist im Vergleich zu Shopware ist, dass wenn ich einen Artikel anlege, ich gleiche Artikelnummern verwenden kann. Eine Artikelnummer ist ja eigentlich ein eindeutiger Identifizierer und diese sollte auch immer einmalig sein. Gerade beim Kopieren und Abändern der Artikel passiert es mir oft, dass ich vergesse die Artikelnummer zu ändern. Hier wäre eine Abfrage aus der DB mit "roter Markierung" wenn schon existiert und Hinweis mit "Artikelnummer existiert bereits" beim speichern oder dass beim Kopieren eines Artikels, dieser immer ohne Artikelnummer kopiert wird.

    Wahlweise sollte die Möglichkeit bestehen, diese im Backend an und abzuschalten.

    Fände ich super...
     
    Zuletzt bearbeitet: 19. Juli 2017
  2. Christian Mueller

    Christian Mueller Beta-Held

    Ich für meinen Teil benötige die Fähigkeit der doppelten Artikelnummern weil ich z.B. Ersatzteile bei Geräten habe, die in vielen Geräten vorkommen.

    Wenn Du absolut verhindern willst, daß es Artikel mit gleicher Artikelnummer zweimal gibt, kannst Du dem Feld in der Datenbank das Attribut "Unique" zuweisen. Die Datenbank wird dann verweigern den Artikel anzulegen.

    Funktioniert aber nur wenn es noch keine Dubletten in der Datenbank gibt!

    Im Mini-SQL folgendes eingeben:
    Code:
    ALTER TABLE `products` ADD UNIQUE(`products_model`);
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Super. Ich danke dir recht herzlich... Bekomme jedoch folgende Fehlermeldung beim Ausführen:

    #1062 - Duplicate entry 'ABC123' for key 'products_model_2'
     
    Zuletzt bearbeitet: 19. Juli 2017
  4. Christian Mueller

    Christian Mueller Beta-Held

    Dann wird es 'ABC123' mehr als einmal geben. Das musst Du erst ändern.
     
  5. Anonymous

    Anonymous Erfahrener Benutzer

    Och, da waren noch einige doppelte drin. Hab es nun geändert bekomen. Danke dir!
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    Hallo Christian. Das ist aber dann doch eher unpraktisch. Denn ich bekomme, dann auch keine Artikel mehr kopiert und einen Datenbankfehler. Wie kann ich das Ganze ungeschehen machen? Denn ich habe in diversen Artikelgruppen viel Vorlagen Texte drin die ich nur abändern muss aus technischen Angaben und das jedesmal neu anlegen und einpflegen ist zu aufwendig.
     
  7. barbara

    barbara G-WARD 2014-2020

    Leg Dir Dummi-Artikel an, mit den Vorlagetexten. Da trägst Du keine Artikelnummer ein, dann kannst Du die Kopieren, statt die richtigen Artikel.
     
  8. Anonymous

    Anonymous Erfahrener Benutzer

    Dafür habe ich jetzt zu viele Artikel schon drin. Muss das irgendwie rückgängig machen.
     
  9. Christian Mueller

    Christian Mueller Beta-Held

    Zum Entfernen probier mal folgendes:

    Im Mini-SQL folgendes eingeben:
    Code:
    ALTER TABLE `products` DROP INDEX products_model;
     
  10. Anonymous

    Anonymous Erfahrener Benutzer

    Er hat den Befehl zwar ausgeführt bekomme dann aber nach dem Kopieren des Artikels folgenden Fehler ausgegeben in Gambio:

    (Link nur für registrierte Nutzer sichtbar.)
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Öhm.. Der Befehl war mal falsch für das rückgängig machen. Wenn wir schon einen UNIQUE Wert setzen, dann macht es keinen Sinn den Index (Primary Key) zu droppen. Sondern ein Drop mit dem UNIGUE ausführen den wir eingefügt hatten. Aber auch dies klappte nicht. Agentur Schölzke, unser lieber Kai hat das Problem anderseitig behoben. Thema erledigt!
     
  12. Razfaz

    Razfaz Erfahrener Benutzer

    Hilfe, ich habe den Befehl oben auch ausgeführt und leider erst dann weitergelesen.
    Wie kann ich den Befehl wieder rückgängig machen?
     
  13. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Einen SQL Befehl kann man nicht RÜckgängig machen.
    Daher macht man vor SQL eingriffen an der DB ein Backup dieser
     
  14. Razfaz

    Razfaz Erfahrener Benutzer

    ALTER TABLE `products` DROP UNIQUE(`products_model`);

    Damit hat es geklappt.
    Kann die Artikel wieder kopieren.