Forum: Datenbanken
by mkinzler,
25. Jun 2010
Bei einem expression index auch.
Forum: Datenbanken
by mkinzler,
25. Jun 2010
Es wurde dir doch schon der einfache Weg über die neue Tabelle gezeigt. was sprcht den dagegen dass du dich so vehement dagegen wehrst?
Forum: Datenbanken
by mkinzler,
25. Jun 2010
Und die Anlage einer Collation ist hier wirklich mit Kanonen auf Fruchtfliegen schiessen
Forum: Datenbanken
by mkinzler,
25. Jun 2010
Weil dieser nicht eindeutig zu sein scheint.
Forum: Datenbanken
by mkinzler,
25. Jun 2010
Ich würde den UNIQUE Index eher über NAME und VORNAME legen, denn ein Nachname darf ja sicherlich öfters vorkommen ( wenn sich der Vorname unterscheidet).
Und was assiert, wenn 2 wirklich gleich heissen?
Forum: Datenbanken
by mkinzler,
25. Jun 2010
Dann wäre es vielleicht ratsam, immer die selben "Tarnbezeichnungen" zu verwenden.
Hat die Tabelle noch mehr Felder?
Forum: Datenbanken
by mkinzler,
24. Jun 2010
Der Unique Index gilt ja auch für das Feld NAMES und nicht VORNAME
Forum: Datenbanken
by mkinzler,
24. Jun 2010
Du kannst jedem Eintrag manuell einen Vergeben. Das Kopieren in eine neue Tabelle ercsheint mir aber der bessere Weg ( da so auch noch dein primäres Problem der Dupletten gelöst wird :wink:)
Forum: Datenbanken
by mkinzler,
24. Jun 2010
In meinem Beitrag jedenfalls nicht. Durch das Kopieren in eine neue Tabelle kannst du den Datensätzen einfach einen künstlichen Primärschlüssel verpassen und gleichzeitig die doppelten Einträge eliminieren.
Forum: Datenbanken
by mkinzler,
24. Jun 2010
Eine Tabelle sollte immer einen PK haben ( am Besten einen syntetischen; ist aber Geschmacksache).
In deinem Fall würde ich eine neue Tabelle erzeugen ( mit ID mit autoinc) und dann die Werte von der "alten" in die neue Kopieren:
Insert into Name ( Vorname) select UPPER(VORNAME) FROM NAMEN1 GROUP BY UPPER(VORNAME);
Forum: Datenbanken
by mkinzler,
24. Jun 2010
Nein, denn du brauchst ja ein Kriterium, um die datensätze zu unterscheiden
Forum: Datenbanken
by mkinzler,
24. Jun 2010
delete from namen1 where id not in ( SELECT MIN(ID), UPPER(VORNAME) FROM NAMEN1 GROUP BY UPPER(VORNAME));
Forum: Datenbanken
by mkinzler,
23. Jun 2010
Bei einem entsprechenden Index sollte das Upper() in der Abfrage nicht notwendig sein
Forum: Datenbanken
by mkinzler,
23. Jun 2010
Nein, werden sie wohl nicht. was aber geanu passiert, kann ich dir nicht sagen.
Forum: Datenbanken
by mkinzler,
23. Jun 2010
Da ist aber der Weg über den Expression Index einfacher