AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 11:47

Parameter dieser Suchanfrage:

Suche in Thema: Datenbank Duplicates
Suche alle Beiträge, die von "idefix2" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 14 von insges. 14 Treffern
Suche benötigte 0.007s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 25. Jun 2010
    Der Expression Index isrt NICHT das Feld. Wenn Du später irgendwo das Feld verwendest, darfst Du NIE auf das UPPER vergessen, und das sind mögliche Fehler von der Art, die extrem mühsam zu finden sind, weil sie sich u.U. irgendwo auswirken, wo man nicht damit rechnet.
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 25. Jun 2010
    Wenn Du eine eigene Collation "erstellen" müsstest, hättest Du Recht. Aber es geht ja ganz einfach, z.B.:


    create collation collate_filename
    for ISO8859_1 <- verwendeter Zeichensatz
    from de_de <- Basiscollation, aus der eine mit den gewünschten Eigenschaften gemacht wird
    case insensitive
    accent sensitive;
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 25. Jun 2010
    Ich verstehe nicht, was an der Verwendung der für den Zweck geeigneten Collation "kanonenhaft" sein soll. Mit einer case-insensitiven Collation wird dem DBMS gesagt, dass in dieser Spalte die Gross/Kleinschreibung generell nicht berücksichtigt werden soll. Alles andere sind Workarounds, die nur mühsam sind und in der Folge immer wieder zu Fehlern führen werden, weil man leicht bei irgend einer...
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 25. Jun 2010
    alle Duplikate löschen müsste in etwa so gehen (ohne Garantie :wink:):

    delete from tabelle t1 where (select count(*) from tabelle where upper(name)= upper(t1.name))>1
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 25. Jun 2010
    Das Problem ist, dass Du dann alle Duplicates löschen würdest (dort, es Duplicates gibt, alle vorkommen, sodass keiner übrigbleibt), was Du wahrscheinlich auch nicht willst.

    Wenn Gross-Kleinschreibung bei der Duplicates-Erfassung ignoriert werden sollen, soll sie mit ziemlicher Sicherheit in der Spalte generell ignoriert werden, auch bei Abfragen, die Dir später irgendwann in Deiner Anwendung...
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 23. Jun 2010
    Das glaube ich nicht.
    Ein Index wird von Firebird ja nur dazu verwendet, Abfragen zu beschleunigen, die zu dem Index passen. Bei der Abfrage selbst gibst Du aber keinen Index an, die Abfrage ist also erst einmal Indexunabhängig defniert. Kommt in der Abfrage kein UPPER vor und Du hast einen Index mit UPPER definiert, dann wird dieser Index für die Abfrage ganz einfach nicht verwendet, weil er ja...
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 23. Jun 2010
    Ich würde eine neue Tabelle mit geeigneter Collation erstellen und die Werte der alten Tabelle mittels "Update or insert" Statement in die neue Tabelle einfügen, dann die alte Tabelle löschen und die neue Tabelle umbenennen. Dann sind die Duplicates weg.
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 23. Jun 2010
    Es kommt darauf an. Bei einer kleinen Anwendung mit nur einer derartigen Spalte und einer Abfrage ist das etwas einfacher - wobei ja eine case-insensitive Collation in einem einzeiler von einer case-sensitiven abgeleitet werden kann, also auch nicht sehr kompliziert ist.

    Bei einer grösseren Anwendung, wenn man viele Datenbankfelder standardmässig case insentiv haben will, sollte man aber auf...
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 23. Jun 2010
    So natürlich ist es nicht. Wenn eine Collating Sequence für die Spalte angegeben ist, der Case-insensitiv ist, behandelt Firebird nach dem, was ich bis jetzt gelesen hat, unterschiedliche Case-Werte auch im Vergleich als identisch.

    Die neusten Versionen von Firebird erlauben eigene Collating Sequences zu erstellen, wenn Du willst, dass Gross und Kleinbuchstaben in dem Feld als gleich behandelt...
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 23. Jun 2010
    Ja, Du hast recht, so wie oben geschrieben geht es nicht. aber so:

    select upper(ip_name) from musik
    group by upper(ip_name) having count(*)>1


    Das hab ich in meiner DB probiert, ip_name -> feld, musik -> tabelle
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 22. Jun 2010
    Was sein könnte, ist, dass Dein Tool vielleicht Daten als Duplicates ansieht, die für Firebird unterschiedlich sind, das hängt bei Firebird vom verwendeten Zeichensatz und von der verwendeten Collation ab (Gross-Kleinschreibung, Umlaute etc.)

    Versuch einmal

    select feld from tabelle
    group by upper(feld) having (count(*)>1)
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 22. Jun 2010
    Wenn feld das zu prüfende Feld in der Tabelle tabelle ist, z.B. so:


    select feld from tabelle
    group by feld having (count(*)>1)


    Dann bekommst Du auch gleich serviert, welche Feldwerte mehrfach vorkommen.
  • Forum: Datenbanken

    AW: Datenbank Duplicates

     
      by idefix2, 22. Jun 2010
    ????

    Wo fehlen Einträge? in der Datenbank? Vom Exportieren einer Spalte können keine Datensätze verschwinden.
    Hast Du noch eine Kopie der DB, in der die Sätze da sind?

    Wenn Du glaubst, dass es Duplicates gibt, kannst Du das doch direkt in der Datenbank mit einem einfachen SQL Statement feststellen, wozu ein externes Tool?


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=idefix2&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=152432
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz