Doppelte Einträge einer DB

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Drizzt
User
Beiträge: 22
Registriert: Mittwoch 8. März 2006, 15:47

Doppelte Einträge einer DB

Beitragvon Drizzt » Mittwoch 5. April 2006, 18:22

Nabend Gemeinde,

Ich hab eine DB von Postgres nach MySQL übernommen und wollte nun einen Primary Key auf eine Spalte der Tabelle legen -> nennen wir sie passenderweise "ID". Mein Vorgänger hat sich scheinbar auf seinen Sourcecode verlassen und keinen Primary Key in der PG Datenbank gesetzt.

Nun habe ich aber als ID zb. :

DE1Sch01
und
DE1sch01

was bei MySQL unweigerlich (vermutlich auch bei PG) unweigerlich zu einem Duplicate Key Entry führt. Gibt es eine Möglichkeit (Vielleicht sogar easy per SQL) eine Liste aller solcher Fääle zu bekommen, ohne sich erst eine Liste aller "ID"s zu holen und wieder mit allen IDs zu vergleichen ?

Das würde ich aus meinem jetzigen Kenntnisstand nämlich machen, was ein extra Script wäre.

Gruß
Drizzt
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Doppelte Einträge einer DB

Beitragvon gerold » Mittwoch 5. April 2006, 18:57

Drizzt hat geschrieben:Gibt es eine Möglichkeit (Vielleicht sogar easy per SQL) eine Liste aller solcher Fääle zu bekommen

Hi Drizzt!

So eine SQL-Abfrage könnte eventuell so aussehen:
[code=]SELECT
id,
COUNT(id) AS Anzahl
FROM
meine_tabelle
GROUP BY
id
HAVING
(COUNT(id) > 1)[/code]
Ob das MySQL aber auch wirklich schluckt, dass weiß ich nicht. -- Ausprobieren.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Drizzt
User
Beiträge: 22
Registriert: Mittwoch 8. März 2006, 15:47

Beitragvon Drizzt » Mittwoch 5. April 2006, 19:08

Hmmm, ja tut er, vielen Dank, ich habs mit WHERE probiert, aber ich hat das noch nie so mit der Having Klausel.

Danke dir vielmals ;)
Alex
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Mittwoch 5. April 2006, 19:18

Drizzt hat geschrieben:Hmmm, ja tut er, vielen Dank, ich habs mit WHERE probiert

Hi Alex!

Ich glaube mich erinnern zu können, dass der große Unterschied zwischen WHERE und HAVING der ist, dass WHERE noch bevor die Gruppierung gebildet wurde filtert und HAVING das Ergebnis der Gruppierung filtert.
Du kannst also mit WHERE gar nicht nach dem Ergebnis von COUNT filtern, da dieses zum Zeitpunkt der Verwendung von WHERE noch nicht gebildet wurde.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.

Wer ist online?

Mitglieder in diesem Forum: Don Terremoto