gelöst Duplettenprüfung Artikelnummer

Thema wurde von Anonymous, 2. Juli 2017 erstellt.

  1. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    30. Juni 2017
    Beiträge:
    459
    Danke erhalten:
    52
    Danke vergeben:
    75
    #1 Anonymous, 2. Juli 2017
    Zuletzt bearbeitet: 19. Juli 2017
    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...
     
  2. Christian Mueller
    Christian Mueller Beta-Held
    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    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
    Registriert seit:
    30. Juni 2017
    Beiträge:
    459
    Danke erhalten:
    52
    Danke vergeben:
    75
    #3 Anonymous, 7. Juli 2017
    Zuletzt bearbeitet: 19. Juli 2017
    Super. Ich danke dir recht herzlich... Bekomme jedoch folgende Fehlermeldung beim Ausführen:

    #1062 - Duplicate entry 'ABC123' for key 'products_model_2'
     
  4. Christian Mueller
    Christian Mueller Beta-Held
    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    Dann wird es 'ABC123' mehr als einmal geben. Das musst Du erst ändern.
     
  5. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    30. Juni 2017
    Beiträge:
    459
    Danke erhalten:
    52
    Danke vergeben:
    75
    Och, da waren noch einige doppelte drin. Hab es nun geändert bekomen. Danke dir!
     
  6. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    30. Juni 2017
    Beiträge:
    459
    Danke erhalten:
    52
    Danke vergeben:
    75
    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
    Registriert seit:
    14. August 2011
    Beiträge:
    35.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    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
    Registriert seit:
    30. Juni 2017
    Beiträge:
    459
    Danke erhalten:
    52
    Danke vergeben:
    75
    Dafür habe ich jetzt zu viele Artikel schon drin. Muss das irgendwie rückgängig machen.
     
  9. Christian Mueller
    Christian Mueller Beta-Held
    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    Zum Entfernen probier mal folgendes:

    Im Mini-SQL folgendes eingeben:
    Code:
    ALTER TABLE `products` DROP INDEX products_model;
     
  10. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    30. Juni 2017
    Beiträge:
    459
    Danke erhalten:
    52
    Danke vergeben:
    75
    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
    Registriert seit:
    30. Juni 2017
    Beiträge:
    459
    Danke erhalten:
    52
    Danke vergeben:
    75
    Ö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
    Registriert seit:
    9. Oktober 2018
    Beiträge:
    134
    Danke erhalten:
    3
    Danke vergeben:
    40
    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
    Registriert seit:
    22. September 2011
    Beiträge:
    31.303
    Danke erhalten:
    6.268
    Danke vergeben:
    1.118
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    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
    Registriert seit:
    9. Oktober 2018
    Beiträge:
    134
    Danke erhalten:
    3
    Danke vergeben:
    40
    ALTER TABLE `products` DROP UNIQUE(`products_model`);

    Damit hat es geklappt.
    Kann die Artikel wieder kopieren.